22.3.26Java基础
[不行就打印去(修打印机)]
1.方法重载
-
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。(可是不知道有什么用22.3.25记)(3.26是有用的肯定)
-
2.构造器必须掌握(为啥还不会?快捷键Alt+insert)
-
构造器也称构造方法,是在进行对象创建时必须调用的。
-
构造器有以下两个特点:
-
-
必须没有返回类型,也不能写void
-
-
一个类即使什么都不写,也会存在一个方法(即和类名相同的构造方法[构造器])
-
当然,也可以显示构造(自己写出来,但是一旦定义了有参构造,必须手动定义无参构造)
-
构造器作用:
-
初始化值
-
3.创建对象内存分析
分析一波:
-
栈相当于目录,堆相当于内容
4.封装
4.1属性私有作用/目的
举个例子:银行卡中钱的数量为一个属性,必须将这个属性私有,你只能有get权限,而不能有set权限,这些方法只能私有情况下才能实现,public可想而知。
反正有时就是私有好!!
4.2封装作用
-
提高代码可维护性,保护数据
-
隐藏代码的实现细节
-
统一接口
5.继承
子类通过super访问父类的属性
父类私有的属性和方法,子类无法继承(用super也无法继承)
super注意点
-
1.super调用父类的构造方法,必须在构造方法的第一个
-
super必须只能出现在子类的方法或者构造方法中
-
super和this不能同时调用构造方法
6.重写(Override)【Alt+insert】
重写 只会重写非静态方法,而且必须存在继承关系时,才会有重写
-
静态方法:定义的什么类就调用什么类的静态方法,换句话讲,就是,方法的调用只和左边,定义的数据类型有关,和右边没有关系(new A())。
-
非静态方法:重写!
-
重写:需要有继承关系,子类重写父类的方法
1.方法名必须相同
2.参数列表必须相同
3.修饰符:范围可以扩大,但是不能缩小
4.抛出的异常:范围可以缩小,不能扩大
重写:方法名相同,方法体不同!
-
为什么需要重写:
1.父类的功能,子类不一定满足,或者不一定需要
7. 多态
注意事项:
-
多态是方法的多态,属性没有多态
-
父类和子类,有联系
-
存在关系:继承关系,方法需要重写,父类引用指向子类对象
不能重写的:
-
static 方法,属于类,它不属于实例
-
final 常量
-
private方法(私有方法都不能继承,更别谈重写了)
8.instanceof 和类型转换
-
父类转换为子类,向下转型。强制转换。
-
子类转换为父类,向上转型。
-
作用:方便方法的调用,减少重复的代码!简洁
9.static
见图知意
静态导入包
10.抽象类
-
抽象类的所有方法,继承了它的子类,都必须要实现它,除非这个子类也是abstract
注意:这个抽象类和接口不同,抽象类还是一个类!类的继承只能单继承,不能多继承!(但是接口可以实现多继承)
-
不能new这个抽象类,只能靠子类去实现它,可以理解为一种约束。
-
抽象类中可以写普通方法,但是抽象方法只能在抽象类中。
11.接口
接口中所定义的其实都是抽象类,public abstract
接口都需要有实现类
实现了接口的类,就需要重写接口中的方法
此处注意命名方法,UserserviceImpl
侧面实现多继承(Implements)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理