Java中的继承有明确的子父级关系,并且在父级中存在子级相同的属性和行为,只不过在Java中,不叫做子父级关系,而是叫做子父类关系。
比如:
- Animal-Dog、Cat
- Person-YaoMing、Kebi
为什么要有继承?
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。
(其中,多个类可以称为子类,单独那一个类称为父类、超类(superclass)或者基类。)
语法格式
父类语法格式
[修饰符] class 父类类名{
编写公共的属性和公共的方法
}
子类语法格式
[修饰符] class 子类类名 extends 父类类名{
编写独有的属性和独有的方法
}
class Subclass extends SuperClass{ }
从程序的角度理解所谓的继承就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。
继承的好处
提高代码的复用性,因为子类Cat中 通过继承不需要写最基本的属性和方法了直接继承过来了,这就是提高代码的复用性。
通过继承,可以使多种事物之间形成一种关系体系。
作用:
继承的出现,更有利于功能的扩展。
继承的出现让类与类之间产生了关系,提供了多态的前提。
注意:不要仅为了获取其它类中某个功能而去继承
继承的注意事项
父类也叫做超类,也叫做基类superclass,子类也叫做派生类subclass
子类继承父类时,没有继承父类的构造方法
继承要满足的条件:is a(什么什么是什么的一种时)
比如:猫是动物的一种,狗是动物的一种…
当一个类没有使用extends指定继承哪个父类时,则系统默认继承Object类
在Java中, Object类是所有类的父类也叫做超类
也就是:当继承Object父类时extends Object是可有可无
子类继承了父类,就继承了父类的方法和属性。
Java不支持多继承,但支持多层继承
在Java中,类是单根性,一个类只能继承一个直接的父类,也就是:单继承