继承概念
继承是多态的前提,主要用于解决共性抽取
特点
子类可以拥有父类的内容,子类也可以有自己的专属内容
格式
public class 父类{}
public class 子类 extends 父类{}
如果子类与父类成员变量重名,逗号前是谁就优先使用谁,没有则向上找
重写
在继承关系中,子类与父类成员方法名一样,参数列表也一样,因为对象是子类的对象,所以优先用子类方法
注意事项
@override可以检测方法是否重写
子类的返回值小于等于父类返回值的范围
子类方法的权限大于等于父类方法的权限修饰符
继承后的构造方法
子类构造方法中有一个默认隐含的super关键字,所以一定是先调用的父类构造方法
可以通过super关键字子类构造调用父类重载构造方法
只用子类构造方法能够调用父类构造方法,且不能多次调用,且要放在方法体的第一句
super关键字用法
在子类方法中调用父类成员变量
super.成员变量名
在子类方法中调用父类成员方法
super.成员方法()
在子类构造方法中调用父类构造方法,且要放在第一句
super.构造方法()
this关键字
访问本类内容,调用时也要放在方法体的第一句,所以不能和super同时使用
Java语言是单继承的,只能有唯一一个父类,但可以多级继承(一个子类的直接父类只能有一个,但一个父类可以有多个子类)
抽象类
父类中的方法,如果不知道如何进行{}方法体实现,那么这应该就是一个抽象方法
格式
public abstract class 类名{
abstract void 方法名(); //定义抽象方法
}
注意事项
1.不能直接创建new抽象类对象
2.必须用一个子类继承抽象类
3.子类必须覆盖重写抽象父类中所有的抽象方法
去掉abstract关键字,补上{}
4.创建子类对象进行使用