javaoop——第三课笔记(第二章)

第一节:java的继承
1、继承概念:继承是类与类的一种关系
注意:
A:java中的继承是 单继承,只有一个父类
B:只要子类对象实例化,那么父类构造方法必定有一个要初始化,不然就报错!
2、继承的好处
A:子类拥有父类的 所有属性和方法
注意:private修饰的成员和构造方法,子类无法继承。
B:实现代码的复用
3、语法规则
class 子类 extends 父类{
}
4、 继承的初始化顺序
A:初始化父类再初始子类
B:先执行初始化对象中属性,再执行构造方法中的初始化。

5、访问修饰符的访问权限
private:本类
默认:本类、同包
protected:本类、同包、子类
public:本类、同包、子类、其他
——
——
第二节:方法重写
1、什么是方法的重写:
如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法时会优先调用子类的方法。

2、语法规则
A:返回值类型
B:方法名
C:参数类型及个数
都要与父类继承的方法相同,才叫方法的重写。
注意:不能缩小被重写方法的访问权限。
——
——
第三节:super关键字
1、super关键字:在对象(子类)内部使用,可以 代表父类对象
例如:
A:调用父类的属性
super.age
B:调用父类的方法
super.eat()
C: 调用父类的构造方法
super(参数列表)

2、super的应用( 与构造方法有紧密关系)
A:子类的构造方法,会自动执行其父类的构造方法。(隐式的使用了super关键字)
也就是说,子类的构造方法,必须调用父类的构造方法
B:如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法。
C:在子类构造方法中,如果要显示的调用父类的构造方法,必须写在子类的构造方法的第一行。
D:如果子类构造方法中既没有显式调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。
E:一个构造方法中,不能同时出现this或super调用构造方法。因为this或super在构造方法中,必须是第一行。
——
——
第四节:抽象类与抽象方法
1、语法定义
抽象类前使用abstract关键字修饰,则该类为抽象类

2、应用场景
A:在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法。
(用来约束子类必须有哪些方法,并不关注子类是如何实现的)
B:从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随意性。
3、作用
限制规定 子类必须实现某些方法,但不关注实现细节。
4、语法规则
A:abstract定义抽象类。
B:abstract定义抽象方法,只有声明,不需要实现。
C:声明了抽象方法,那这个类必须是抽象类。
D:抽象类中可以包含普通方法,也可以没有抽象方法。
E:抽象类不能直接实例化,但可以定义引用变量。
注意:抽象方法没有方法体,以分号结束。abstract不能用来修饰属性和构造方法。
——
——
第五节:final修饰符
1、final关键字
使用final做标识有“ 最终的”含义。

2、final可以修饰类、方法、属性和变量
注意:
A:final修饰类,则该类不允许被继承
B:final修饰方法,则该方法不允许被重写
C:final修饰属性:
1、如果声明属性赋值,则该类的属性不允许在其他位置有修改值(只能赋值一次)。
2、如果声明属性不赋值,系统会报错,但可以在构造方法中赋值。
(但两者只能选其一)
D:final修饰变量,则该变量的值只能赋值一次,即变为常量。
E:final修饰引用型变量(对象)的话,则不可以再指向另一个对象。

你可能感兴趣的:(javaoop)