day11
day11
子类构造器的特点
- 子类的全部构造器,都会先调用父类的构造器,再执行自己,即默认在子类构造方法第一行存在一个super();(不写也默认存在)
- 如果父类没有无参数构造,我们必须手动的在子类构造器添加super(.....);
如何快捷生成子类构造
先实现父类构造,再选择子类成员变量
多态
多态是在继承/实现情况下的一种现象,表现为:对象多态,行为多态
父类引用子类对象
new 对象的快捷键 Ctrl+Alt+V
变量的类型是什么,就必须给这个变量赋值什么样的类型
注意:如果这个变量是引用类型,赋值赋的是一个对象(本类对象,子类对象)
多态的本质
多态的本质就是父类指针指向子类对象
父类只能访问自身可访问的函数;
在栈里定义父类引用指向堆里子类对象,如果子类和父类都有同样的成员变量 对象里会有两份这个成员变量,对哪个成员变量进行操作依具体情况而定
如果没有,则子类会直接使用父类成员变量进行操作
子类对象里会有super的全部属性
instanceof关键字可判断某个对象是否属于某个类
final关键字
- final可以修饰类、方法、变量
- 修饰类:该类不能被继承
- 修饰方法:方法不能被重写
- 修饰基本类型变量:该变量只能被赋值一次
- 修饰引用类型变量:引用变量地址值不可以改变
final类似于c++里的const
快捷键:
ctrl+shift+U:切换大小写
Ctrl+Alt+V:自动补全new的代码
Ctrl+Alt+M:抽取方法
抽象类
- 抽象类中不一定有抽象方法,有抽象方法的一定是抽象类
- 类该有的成员抽象类都可以有
- 最关键的特点:抽象类不能有实例,仅仅作为一种特殊父类让子类继承并实现
- 一个类继承抽象类,必须写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类
抽象类的应用:
模板方法设计模式
解决方法中存在重复代码的问题
写法
-
1.定义一个抽象类
-
2.在里面定义2个方法(一个是模板方法(最好用final修饰):把相同代码放里面;一个抽象方法:具体实现交给子类完成)
接口
接口中定义的成员变量都是常量——默认被public final static 修饰
接口不能创建对象,可以创建一个接口的实现类来创建对象
接口的好处
- 弥补类单继承的不足
- 让程序可以面向接口编程,根据规范开发
- 面向接口开发,可以灵活方便的切换各种业务实现
接口的多继承
一个接口可以同时继承多个接口
多继承的好处
便于实现类去实现
finalize()方法
类似于c++的析构函数,在对象被销毁时执行,由于Java自动进行垃圾回收,所以不知道JVM何时会执行检查与回收操作,可以使用System.gc();提醒Java检查是否有没被指向的对象,有则进行释放。
本文来自博客园,作者:萌新小夏,转载请注明原文链接:https://www.cnblogs.com/xkh-blogs/p/17231090.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通