文字数:约960字 阅读时间:约15分钟
一. 继承
1. 概念:描述的是事物之间的所属关系(父子关系)
2. 定义格式:class 子类 extends 父类 {}
(例如:class Student extends Person{})
3. 继承的好处
1) 子类可以直接使用父类非私有的成员方法和成员变量
2) 每个子类都可以拥有父类完整的一份
如图,直白的来说,就是提高了效率。
4. 继承的特点
1) 在java中,类与类之间只能是单继承,不能多继承(extends只 能出现一次)
2) 继承具有传递性(孙子可以直接使用爷爷类的内容);
3) 所有类都直接或间接的继承Object类(Object类中的方法, 任意一个对象都可以直接使用)
4) 在java中可以有多层继承
(例如:A继承B,B继承C)
5. 子类与父类成员变量或成员方法调用的问题
1) 在子类中,使用自己的成员变量的值,使用关键字this即可
2) 在子类中,使用父类的成员变量或者成员方法,使用关键字 super即可
( 例如Super.属性名 或者 Super.方法名() )
二. 继承中的方法重写
1. 概念:子类中出现与父类一模一样的方法时,会出现覆盖操作, 也称为 override 重写、复写或者覆盖。
2. 方法重写与重载的区别
1) 重写:在子类中,拥有与父类一模一样的方法
2) 重载:同一个类中,方法名相同,参数列表不同
3. 重写的应用
当子类认为父类的方法,不足以体现出子类的特性时,子类可以 重写父类的方法,使用子类对象,调用方法的时候,优先执行子类重 写的方法
4. 重写的注意事项:
1) 子类方法覆盖父类方法,必须要保证权限大于等于父类权 限
2) 必须一模一样,函数的返回值类型 函数名 参数列表都要一样
如图,重写可以完全覆盖父类的方法,当然也可以使用super在父类已有的功能下添加自己特有的功能
5. 子类调用父类内容
1) 子类调用父类成员方法
super.方法名(形式参数)
(super一定要写在子类中,不然没有意义)
2) 子类调用父类成员变量
a. 非私有属性:super.变量名
b. 私有属性:通过父类的set/get方法调用
c. 成员变量查找顺序
(1) 就近原则,先查找子类成员变量,没有则找父类变量
(2) 子类可以调用父类的方法和属性,父类不能调用子类 任何内容
6. this与super调用构造方法
1) 使用
this只能在自己的构造方法中调用自己其他重载的构造方法 super可以调用父类的构造方法
2) 特点
(1) 在一个构造方法中,只能调用一次其他的构造方法
(2) 在子类的构造方法中,如果不写会默认添加super(), (父类对象会优先于子类被创建出来)
(3) this和super调用其他构造方法的时候,必须放在构造方 法中的代码的第一行
(4) this和super不能同时存在
此图主要为理解this和super的用处