继承
继承的关键字:extends ,子类又叫做派生类, 父类 又叫做 基类, 超类
子类 extends 父类{
//子类的内容
}
继承的好处:
提高了代码的复用性和维护性
使类与类之间产生了联系,是多态的前提
继承的弊端:
耦合性强
开发的原则:高内聚 低耦合
java只支持单继承 不支持多继承(一个儿子不能有多个亲生父亲),可以支持多层继承(一个儿子有一个亲爹,一个亲爹上面还有一个亲爹);
继承的注意事项:
被private修饰的内容不能被继承
构造方法不能被继承
不能为了部分功能而去继承 ,必须是“谁是谁的一种”才可以继承
继承中使用变量依然采用就近原则:
在方法中使用变量的时候,首先从局部范围内找,没有的话 就去成员范围找,如果再没有 就去父类中找
this:代表当前对象的引用
super:代表当前对象父类的空间的标识
继承中的构造方法:
子类的构造方法默认第一条语句,都是super(); 子类执行构造方法 第一行都会先去执行父类的构造方法,
为了给父类进行初始化
this和super的注意事项:
this();或者super();必须放在构造方法的第一行;
如果我们手动给出了this();或者super(); 系统想不再默认给出 super();这个语句
方法的重写:
发生在子父类关系中, 子类出现了和父类 方法声明 一模一样的方法,这就叫做方法的重写 也叫做 覆盖
多态的必要条件
方法的重写的注意事项:
1:父类private的方法不能被重写(都不能被继承 何来重写)
2:子类重写父类的方法 权限必须大于等于父类
3:静态的方法只能覆盖静态的方法(其实静态的方法 不属于重写的范畴)
方法重写和重载的区别:
方法的重写: 发生在子父类中 子类的方法声明必须和父类的方法声明一模一样
方法的重载: 发生在同一个类中 方法名相同 参数列表不同 与返回值无关
final
被final修饰的类 不能被继承
被final修饰的方法 不能重写
被final修饰的变量 会变成常量(常量一旦被赋值 就不能再被重新赋值 就是说 只能赋值一次)
但是被final修饰的引用类型数据 其内容(属性)时可以改变的
final修饰的变量的初始化时机:
被final修饰的变量 必须进行显示初始化 或者 构造初始化, 不能 只有 默认初始化
|
|