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检查是否有没被指向的对象,有则进行释放。
标签:变量,对象,子类,接口,day11,抽象类,父类 From: https://www.cnblogs.com/xkh-blogs/p/17230945.html