继承的定义:类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模。
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
继承能提高代码的重复性
extands的意思是“扩展”。子类是父类的扩展
不同的叫法:超类、父类、基类、子类、派生类
编写父类
class Pet {
//公共的属性和方法
}
class Dog extends Pet {
//子类特有的属性和方法
}
编写子类,继承父类
class Penguin extends
}
{
子类并没有定义任何的操作,而在主类中所使用的全部操作都是由Person类定义的,这证明:子类即使不扩充父类,也能维持父类的操作。
继承的限制:在Java中只允许单继承。
子类不能直接访问父类的私有成员。
通过继承可以简化类的定义,实现代码的重用
子类继承父类的成员变量和成员方法,但不继承父类的构造方法
java中叧有单继承 ,没有像c++那样的多继承。多继承会引起混乱,使得 继承链过于复杂,系统难于维护。就像我们现实中,如果你有多个父母亲, 那是一个多么混乱的世界啊。多继承,就是为了实现代码的复用性,却引入 了复杂性,使得系统类之间的关系混乱。
java中的多继承,可以通过接口来实现
如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object
super是直接父类对象的引用
可以通过super来访问父类中被子类覆盖的方法或属性
普通方法:
没有顺序限制 可以随便调用
构造函数中:
任何类的构造函数中,若是构造函数的第一行代码没有显式的调用super(...);那么 Java默认都会调用super();作为父类的初始化函数。 所以你这里的super();加不加都无所谓
用处:
super能出现在实例方法和构造方法中。
super的语法是“super.”和“super()”。
super不能出现在静态方法中。
super大部分情况下是可以省略的。
理解:
子类访问父类成员
– 访问父类构造方法 (使用super关键字,super代表父类对象。在子类构造方法中调用且必须是第一句)
super();
super(name);
访问父类
super.name;
访问父类方法
super.print();
在子类中可以根据需要对从基类中继承来的方法进行重写。
重写方法必须和被重写方法具有相同方法名称、参数列表和返回 类型。
重写方法不能使用比被重写方法更严格的访问权限。