继承
1.什么是继承
- java世界中同样也有继承关系,和现实世界中的继承类似。
- 继承是从已有的类中派生出新类,新的类能吸收已有类的数据属性和行为,并能扩展新的功能。
- 继承是面向对象的三大特征之一。
2.Java中对继承的描述
- 多个类中存在属性和行为时,将这些内容抽取到单独的一个类中,那么多个类无须再定义这些属性和行为,只需要继承那个类即可。
- 多个类可以称为子类,单独这个类称为父类或者基类。
3.继承有什么特点
继承是单继承,即一个子类只有一个父类
4.继承的优点
- 继承提高了代码的复用性
- 简化了人们对事物认识和描述,能清晰地体现相关类间的层次结构关系
- 降低了代码的耦合性,增加了程序的已维护性
5.继承的代码
Haiou类继承Bird类
public class Bird {
private String color;
private int age;
public void fly() {
System.out.println("我会飞");
}
public class Test01 {
public static void main(String[] args) {
Haiou h = new Haiou();
h.fly();
}
}
class Haiou extends Bird { private double size; private String eye; public void fly() { super.fly(); System.out.println("我也会飞"); } }}
public static void main(String[] args) {
Haiou h = new Haiou();
h.fly();
}
方法的重写
1。什么是方法的重写
当子类出现和父类一模一样的方法时,子类对象调用改方法,会运行子类方法的内容,如同父类的方法被覆盖一样。
2.覆盖的应用
当子类需要父类的功能,而功能主体子类有自己持有内容时,可以复写父类中的方法,这样,即沿袭了父类的功能,有定义了子类持有的功能。
3.方法重写的规则(两同两小一大)
- 方法名相同
- 形参列表相同
- 子类的方法的返回值类型应该比父类的返回值类型更小或相等
- 子类方法抛出的异常应该比父类抛出的异常类更小或相等
- 子类方法的访问权限应该比父类方法访问权限更大或相等
4.方法复写的代码
public class WJL {
public void makeMoney() {
System.out.println("我会盖房子,赚了1000亿");
}
}
class WSC extends WJL{
public void makeMoney() {
super.makeMoney();
System.out.println("我会打游戏,赚了10亿");
}
}
class P {
public static void main(String[] args) {
WSC c = new WSC();
c.makeMoney();
}
}
super关键字
- super和this的用法很像
- this代表本类对象的引用
- super代表父类的内存空间的标识
- 当子类出现同名成员时,可以用super进行区分
- 子类要调用父类构造方法或者成员方法时,可以使用super语句