Java 继承
继承是一种 类和类之间的关系,是 面向对象系统的基石。我们可以把共性的结构和行为放到父类中,子类可以通过继承复用父类中的代码,并且根据自己的需要进行扩展。使用 extends
关键字表示继承关系。利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为 超类(super class),派生类称为 子类(subclass)
- java 的继承是单继承, 一个子类只能继承一个父类
- 子类会继承父类所有非
private
方法和变量,除了构造函数 - 生成 子类对象或者实例时,Java 默认地首先调用 父类的不带参数 的构造方法,接下来再调用子类的构造方法,生成子类对象
- 方法覆盖: 子类中有和父类中非 private 的 同名方法,且返回类型和参数表也完全相同,就会覆盖从父类继承来的方法。子类中通过
super
关键字调用父类被重写的方法
// cat Graph.java
class Graph {
String name;
public Graph(){}
public Graph(String name) {
this.name = name;
}
public void show() {
System.out.println("I'm a graph");
}
}
// cat Rectangle.java
class Rectangle extends Graph {
int width;
int height;
public Rectangle(){
// this 表示对当前对象的引用
// 子类构造函数中,一般第一条语句是`super();`,表示调用父类构造函数
// 构造函数的第一语句既不是 this() 也不是 super() 时,就会隐含的调用 super()
super();
}
public Rectangle(String name) {
super(name);
}
public Rectangle(int width, int height,String name) {
// this 表示对当前对象的引用
this(name);
System.out.println("My width is:" + width + "my height is :"+ height);
}
public void show() {
// Retangle 就覆盖了 Graph 的 show 方法,同时在 show 方法中通过 super.show();调用了父类的 show 方法
super.show();
System.out.println("at the same time I'm a Rectangle");
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论