20180311 java java面向对象-理解继承关系
20180311 java java面向对象-理解继承关系
继承关系的定义:基于某个父类 对对象的定义加以拓展,而产生的新的子类的定义子类可以继承父类原来的某些定义,也可以增加原来父类所没有的定义,或者覆盖父类中的某些特性。
从面向对象的角度上说,继承是一种从一般到特殊的关系,是一种”is a”的关系,即子类是对父类的拓展,是一种特殊的父类,比如:狗是动物的一种特殊情况,狗属于动物。
在java语言中,存在多个类的时候,,我们使用 extends 关键字 表示子类和父类的关系,
//普通的人. 父类
class Person
{
String name;
int age;
public void sleep()
{ }
}
//学生.子类
class student extends Person
{
String level;
}
在java中,类和类之间的继承关系只允许单继承,不允许多继承。也就是说一个类A只能有一个直接的父类,不能出现类A同时继承于类B和类C(即不能有多个父亲)。C++语言允许多继承。
但java语言允许多重继承,即A继承B,B继承C,C继承D。
在java中,除了Object类之外,每一个类都有一个直接父类。
比如 class student extends Person(),我们就说此时Student的直接父类是Person,那class Person()的Persond的父类是谁呢? object类是java语言的根类(老祖宗类,任何类都是object的子类),class person()等价于class person extends object(),object类要么是一个类的直接父类,要么是一个类的间接父类。