Java继承

Java中的继承就是在已经存在类的基础上进行扩展,从而产生新的类。已经存在的类称为父类、基类或超类,而新产生的类称为子类或派生类。在这类中,不仅包含父类的属性和方法(子类拥有父类非private的属性、方法),还可以增加新的属性和方法。

Java中子类继承父类的语法格式如下:
修饰符class class_nameextends extend_class{
//类的主体
}

其中,class_name 表示子类(派生类)的名称:extend_class表示父类(基类)的名称;
Extends关键字直接跟在子类名之后,其后面是该类要继承的父类名称。
例如:
Public class Student extendsPerson{}

注意:如果在父类中存在有参的构造方法而并没有重载无参的构造方法,那么在子类中必须含有有参的构造方法,因为如果在子类中不含有构造方法,默认会调用父类中无参的构造方法,而在父类中并没有无参的构造方法,因此会出错。

Java单继承
Java不支持多继承,只允许一个类直接继承另一个类,即子类只能有一个直接父类,extends关键字后面只能有一个类名。
例如,如下代码会导致编译错误:
classStudent extends Person,Person1,Person2{…}
class Student extends Person,extends Person1,extends Person2{…}
很多地方在介绍Java的单继承时,可能会说java类只能有一个父类,严格来讲,这种说法是错误的,应该是一个类只能有一个直接父类,但是它可以有多个间接的父类。

如果定义一个java类时并未显示制定这个类的直接父类,则这个类默认继承java.lang.Object类。
因此,java.lang.Object类是所有类的父类,要么使其直接父类,要么是其间接父类。因此所有的java对象都可调用java.lang.Object类所定义的实例方法。
Java继承_第1张图片

继承的优缺点:
在面向对象语言中,继承是必不可少的、非常优秀的语言机制,它有如下优点:
1、实现代码共享,减少创建类的工作量,使子类可以拥有父类的方法和属性。
2、提高代码维护性和可重用性。
3、提高代码的可扩展性,更好的实现父类的方法。

继承的缺点:
1、继承是侵入性的。只要继承,就必须拥有父类的属性和方法。
2、降低代码灵活性。子类拥有父类的属性和方法后多了些约束。
3、增强代码耦合性(开发项目的原则为高内聚低耦合)。当父类的常量、变量和方法 被修改时,需要考虑子类的修改,有可能会导致大段的代码需要重构。

你可能感兴趣的:(Java继承)