子类与父类,以及子类的继承,重载与重写。

来源:互联网 发布:sql日期取年月日 编辑:程序博客网 时间:2024/05/22 15:46

(一)写在前面:在java中,不支持多重继承,即一个子类只能继承一个父类。但是接口不一样,一个子类可以有多个接口。

1、子类如果和父类在同一个包中:子类自然继承了父类的除了private以外的方法,包括友好方法和友好变量。

2、如果不在同一个包中,子类只继承了父类的protected和public类,不能继承友好变量和友好方法,这也是protected类和友好类的区别。

(二)java中存在两种多态,即重载与重写。

1、方法的重载:一个类中可以有多个方法具有相同的名字,类型也可以相同,但是这些方法的参数必须不同,只有这一个要求,这就叫方法的重载。

2、方法的重写,就涉及到了继承的概念。

(1)final关键字,可以修饰类,方法,和变量,final修饰的方法,成员变量,不能被重写,只能被老老实实继承,final嘛,毕竟是最后了,没法再修改。

(2)抽象类(abstract)

    a、首先抽象类中,可以有抽象方法,也可以是非抽象的方法,不能用new创造对象。

    b、其次,被一个非抽象类继承时,那么这个非抽象类,必须重写父类也就是抽象类的抽象方法。这个也可以从另一方面说明,不能使用final和abstract同时修饰一个方法的原因。

    c、如果是抽象类,继承了一个抽象类,那么子类可以重写,也可以不重写,直接继承就行。

(3)以上都是特殊情况,一般情况下,如果子类继承了父类的某个实例方法,那么这个子类就有权利可以重写这个方法。重写方法时注意,方法的名字,类型,参数个数,参数类型,必须和父类中的实例方法一致,如果参数不同,就成了新增的方法,而不是重写的方法了。



0 0
原创粉丝点击