类是对对象的冲向抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模

提高代码的复用性

Extends 意思是“扩展”。

javaguns 扩展流程 java扩展类_修饰符


javaguns 扩展流程 java扩展类_javaguns 扩展流程_02


javaguns 扩展流程 java扩展类_子类_03

在不使用继承的情况下Animal的 run和sat 方法被多个类多次书写。

javaguns 扩展流程 java扩展类_javaguns 扩展流程_04


通过继承 可以获得父类公开方法与变量 让需要写的代码极度减少。当父类添加了某些方法,子类也会获得该方法。减少代码的复写。

小结:
子类继承父类,可以得到父类的全部属性和方法(除了父类的构造方法)
Java中只有单继承,没有多继承,但可以多重继承。
Java的的多继承可以通过接口来实现
如果定义一个类时,没有调用extends,那么它的父类是:java.lang.Object

继承_方法的重写

重载和重写没有任何关系。

在子类中可以根据需要对父类中继承的方法进行重写

javaguns 扩展流程 java扩展类_父类_05


Bird 继承了Reptile 重写了 Animal的run()重写方法必须和被重写方法具有相同的方法名称、参数列表和返回类型。

javaguns 扩展流程 java扩展类_修饰符_06


因为参数列表不同 speak方法没有完成重写,却达成了重载的条件。

javaguns 扩展流程 java扩展类_javaguns 扩展流程_07

javaguns 扩展流程 java扩展类_子类_08


Run被重写 Animal的run方法已经被替换,speak因参数列表不同,所以bird有两个名称为speak的方法重写的方法不能使用比被重写的方法更严格的访问权限

protected void quanxian(){

System.out.println(“你可以放宽我的访问权限,但不能够缩小权限”);

}

javaguns 扩展流程 java扩展类_父类_09


javaguns 扩展流程 java扩展类_父类_10


权限被放大后没有出错,当权限被缩小后会提示

1.修改子类该方法的修饰符为父类的

2.修改父类该方法的修饰符