继承 extends, super this,方法重写


 extends  扩展 子类(派生类)是父类的扩展

java中只有单继承,无多继承,即一个子类只能有一个父类,一个父类可拥有多个子类。

 public class  子类名 extends 父类名 {}

功能:在子类的代码中,可以使用父类中的(public)方法

鼠标点在类里,按下ctrl+h,会出现继承关系。、、、、、、、、、、、、

在java中,所有的类,都默认直接或间接继承object类,在平时可以忽略掉extends object 

ex:pu鼠标点在blic class  student{} == public class   student extends object{}

 ////////////////////

super();     //隐藏代码:调用父类的构造器; 会先执行父类,在执行子类

1.调用父类的构造器,必须要在子类构造器的第一行                 。                                                                           

2.必须只能出现在子类的方法或者构造方法中。                                                                                                        

3.super和this无法同时调用构造方法,因为都在第一行。

                                                                                                                                                supe   VS     this

  super this
代表对象 代表父类对象的应用 本身调用者的对象
前提 只能在继承条件中用 没有继承也能用
构造方法 父类的构造 本类的构造

///////////

方法重写

重写和方法有关,与属性无关

重写:需要有继承关系,子类重写父类的方法             方法名一样,方法体不同               Alt +Insert: overside;

1.方法名相同 

2.参数列表相同

3.修饰符:范围可以扩大:小  private Defalut Protected public  大,不能缩小

4.抛出的异常:范围可以被缩小,不能被扩大    ClassNotFoundException ---> Exception(大)          ???

  • 重写的方法不能比被重写的方法有更严格的访问权限。
  • 重写的方法不能比被重写的方法产生更多的异常

不能重写的方法

1.static    方法, 属于类,不属于实例

2.final    常量

3.prviate    方法

为什么要重写?

 父类的功能,子类不一定需要或者不一定满足