1.什么是继承
extends 建立起类和类之间的关系,所以要存在至少2个类
语法: 子类 extends 父类
2.继承的好处和弊端
好处:
提高代码的复用性
提高代码的维护性
建立起了类和类之间的关联关系,是多态的前提(多态必须建立在继承基础之上)
弊端:
耦合度高了,牵一发动全身(开发的原则高复用,低耦合)
3.继承的特点
1.java中不允许类的多继承(一个孩子只有一个爹)
2.java允许多层继承,继承是可以有传递性的
继承中成员变量的关系
1.子类成员变量名和父类成员变量名重复的情况(没有意义)
2.不同名的变量
this和super在继承中的使用
this:代表当前对象的引用
super:代表当前对象父类的引用
调用成员变量的时候:
this 可以调用本类成员变量,也可调用父类的成员变量
super 调用父类的成员变量
调用成员方法的时候:
this 本类+父类
super 父类
调用构造方法的时候:
this 本类
super 父类
4.继承的注意事项
-
子类只能访问父类的非私有成员(成员变量+成员方法)
-
子类不能继承父类的构造方法,但是可以通过super去访问
-
不要为了继承而去继承
class Father{
int num=10;
private String car="GTR";
public void FMethod() {
System.out.println("父类的成员方法");
}}
class Son extends Father{
int result=20;
public Son() {
super();
System.out.println(this.num);
}
public void method() {
System.out.println(this.num);//10 //num是从父类继承过来的 System.out.println(super.num);//10 // 直接调用父类的
System.out.println(this.result);// this既可以调用本类中的成员,也可以调用父类中的非私有成员 //System.out.println(super.result); // 报错,因为父类没有result this.FMethod(); super.FMethod(); }
方法重写:方法名相同 方法体不同
什么时候用方法重写?
子类既需要父类的功能,又需要自己独有的功能逻辑的时候
注意事项:
1.父类的私有方法不能被重写,因为父类的私有方法本身是不能被继承的,所以不能重写。
2.子类重写父类方法的时候,最好声明的一模一样