Fork me on GitHub

继承

Posted on 2019-09-02 20:08  攀一座山  阅读(93)  评论(0编辑  收藏  举报

1、继承的好处:(1)代码的复用(2)代码的扩展

2、什么情况用继承?

(1)从上而下:当我们新定义一个类型时,发现已经存在某个父类,父类中所有的特征(属性、方法)在是新定义的这个类的特征,我们可以选择继承现有的类,实现代码的复用。这里,要注意它们是is-a的关系。

(2)从小而上:当我们声明了多个类,这些类有共同的特征,那我们可以抽取出一个公共的父类,可以简化代码,同时又可以使用公共的父类来统一管理众多的子类的对象。

3、继承的语法

【修饰符】 class 子类 extends 父类{
    
}

  

子类:subclass,又称为派生类

父类:superclass,又称为基类、超类

4、继承的特点

(1)父类的所有的属性和方法都会继承的子类中

A:从可访问性角度来说:父类私有的在子类中不可见,无法直接使用,好像没有继承一样;

B:从事物的特征来说:父类私有的也会继承到子类中,在子类对象时,仍然要分配对应的的内存。

(2)父类的构造器”不会“继承到子类中

(3)在子类的构造器中一定要调用父类的构造器。

如果你没有写super()或super(实参列表)这样语句,默认就是调用了父类的无参构造。

如果你写了super()或super(实参列表)这样的语句,super()对应父类的无参构造,super(实参列表)对应父类的有参构造。

如果父类没有无参构造,那么必须在子类的构造器中要手动使用super(实参列表)明确调用父类的哪个有参构造。

(4)Java中只支持单继承

(5)Java中支持多层继承,即父类还可以有父类。

(6)一个父类可以同时有多个子类,子类还可以有子类

(7)子类可以扩展父类没有的特征(属性、方法)

(8)子类还可以“重写”父类的方法

 

5、方法的重写(Override)

当子类继承了父类的方法,如果这个方法的实现不适用于子类时,我们子类就可以选择重写。

要求:

(1)方法名称:必须相同

(2)形参列表:必须相同

(3)返回值类型:

基本数据类型和void:必须相同

引用数据类型:<=

(4)权限修饰符:>=

被重写的方法不能是private的,跨包不能是缺省的

(5)其他修饰符:

不能是static和final

 

What is different between Overload and Override?

Overload:方法的重载,同一类中出现了方法名称相同、形参列表不同的两个或多个方法。和返回值类型无关。

Override:方法的重写,如上。

Copyright © 2024 攀一座山
Powered by .NET 8.0 on Kubernetes