继承
面对对象第二大特征:继承
- 什么是继承?
允许子类拥有父类公用的属性和方法
- 优缺点:
优点:提供代码的复用性
缺点:耦合度会变高
- 继承语法
public class 子类 extends 父类{
}
- 继承
- 子类继承父类后,父类声明的所有属性和方法子类都可以获取
- 子类除了通过继承获取父类属性和方法外,还可以定义自己独有的属性和方法
- 一个父类可以有多个子类,Java单继承,一个子类只能有一个父类
- 一个子类可以继续派生子类
访问修饰符
- public:公共的,在当前项目下任何地方都可以访问
- protected:受保护的,在当前类、包或者其他派生类中可以访问
- default:同一个包下
- private:私有的,同一个类
重写
方法重写:如果父类的方法满足不了子类要求时,子类可以对父类方法进行重写
重写规则:
- 子类重写父类的方法名、参数列表、返回值必须和父类方法一致
- 子类重写的方法访问修饰符不能小于父类的
- 子类重写父类的方法必须同位static或非static
重载(overload)和重写(override)的区别
- 方法重载只能在同类中重载
- 方法重写必须存在继承关系
- 方法重载要求方法名相同,参数列表不同,和返回值无关
- 方法重写要求方法名相同,参数列表相同,返回值相同
super关键字
super关键字可以修饰成员变量、成员方法、构造方法
- 当父类的属性和子类的属性重名时,可以通过“super.属性名”调用父类的属性
- 子类重写父类方法后,如果子类想再次调用父类重写前的方法,可以加上“super.方法名”调用父类方法
- 修饰构造方法,通过子类构造方法中使用“super(形参)”来显示调用父类构造方法
注意:super()必须放在构造方法首行