继承,重写,abstract,final
继承
1,为什么使用继承?→减少代码冗余
2,使用继承
(1)抽取公共的特征放入到类中
(1)抽取公共的特征放入到类中
public class 父类{
}
2)编写子类 使用关键字 extends继承父类
public class 子类 extends 父类{
}
注意:(1)子类和父类的关系是is-a的关系,比如Dog is a Pet
(2)只能继承一个父类(只有一个亲爹!)单根继承
super关键字
调用父类中的属性,方法,无参构造,带参构造
注意:在构造方法中必须是第一句super()
不能被子类继承的父类成员
- private 成员 私有的不能被继承
- 子类和父类不在同包下,使用默认访问权限的成员
- 构造方法(需要使用super调用)
多重继承关系的初始化顺序:
1.父类属性→2.父类构造方法→3.子类属性→4.子类构造方法
访问修饰符权限:
方法重写
在不同的类中,方法名相同,参数类型个数相同,返回值类型相同或者是其子类,访问修饰符不能严于父类。
abstract关键字 可以修饰类→抽象类,可以修饰方法→抽象方法
修饰类→一般这个类实例化没有意义,使用abstract修饰掉
抽象方法:
1,抽象方法没有方法体
2,抽象方法必须在抽象类里
3,抽象方法必须在子类中被实现,除非子类是抽象类。
final关键字
final修饰的变量叫做常量,不可以重新赋值,必须给一个初始值
final修饰的方法是最终版的方法,不可以被重写
final修饰的类是最终版的类,不可以被继承。