java:继承
继承是多态的前提,没有继承,就没有多态
父类:叫基类,也叫超类
子类:也叫派生类
子类可以拥有父类的(部分或者全部)内容,
子类也可以有自己的内容
定义父类:就是定义一个普通的类
定义子类:public class 子类名称 extends 父类名称(){ }
继承中成员变量的访问特点:
在父子类继承关系中,如果成员变量重名时,创建子类对象时,访问成员变量有两种方式:
直接通过子类对象访问成员变量:等于符号左边是谁,就优先调用谁,没有则向上查找
间接通过成员方法访问成员变量:该方法属于谁,就优先调用谁,没有则向上查找
区分局部变量、子类成员变量和父类成员变量:
局部变量:直接写变量名
子类变量:this.变量名
父类变量:super.变量名
public class son extends Farth{ int num=200; public void m() { int num=300; System.out.println(num);//访问局部变量 System.out.println(this.num);//访问子类变量 System.out.println(super.num);//父类的变量 } }
在父子类的继承关系中,如何调用成员方法:创建对象的等号左边是谁,就先调用谁,没有则向上查找(包括重名)
重写(override):
在继承关系中,方法名一样,参数一样,
覆盖重写的注意事项:
1:父子类之间方法的名称和参数一样,@override写在方法前面,用来检测方法是否符合重写规则
2:子类方法的返回值范围必须小于或等于父类方法的返回值的范围
例如:java.lang.Object类是所有类的最高父类,java.lang.String类是Object的子类
3:子类的方法权限必须大于或等于父类的方法的权限修饰符
public>protected>(default)>private default不是关键字,表示什么都没有
重载(overload):
方法名一样,参数不一样
在父子继承关系中,父子类构造方法的访问特点:
1:子类构造方法中有一个默认隐含的super()调用,所以一定先调用父类的构造方法,再执行子类构造方法
2:子类构造方法可以通过super关键字来调用父类重载构造
3:super的父类构造调用,必须是子类构造方法的第一个分号语句,不能一个子类构造多次调用父类的构造
总结:子类必须调用父类的构造方法,不写则赠送一个super,写了则用写了的super,只能有一个super
super关键字的三种用法:
1:在子类成员方法中,访问父类的成员变量
2:在子类成员方法中,访问父类的成员方法
3:在子类构造方法中,访问父类的构造方法
this关键字的三种用法:
1:在本类成员方法中,访问本类的成员变量
2:在本类成员方法中,访问本类的另一个成员方法
3:在本类构造方法中,访问本类另一个构造方法
注意:this关键字必须是构造方法的第一个语句,不能与super关键字同用。
java继承的三个特点:
1:java语言是单继承的,一个子类只有一个父类
2:java语言是多级继承的
3:一个子类的直接父类只有一个,但一个父类可以有多个子类

浙公网安备 33010602011771号