Java继承性构造方法调用的概念
在Java中,当一个类继承自另一个类时,它也继承了父类的成员变量和方法,但是却不能直接继承父类的构造方法。因为构造方法的名称必须与类名相同,如果子类继承了父类的构造方法,就会在子类中出现两个相同名称的构造方法。这就需要使用继承性构造方法调用,让子类能够调用父类的构造方法。
使用super关键字调用父类构造方法
在Java中,用super关键字来调用父类的构造方法。子类可以通过super关键字调用父类的构造方法,从而传递父类中的数据给子类。以下是一个例子:
public class Person {
private String name;
public Person (String n) {
name = n;
}
}
public class Student extends Person {
private int grade;
public Student (String n, int g) {
super(n); //调用父类构造方法
grade = g;
}
}
在这个例子中,Person类有一个名为name的字符串类型私有成员变量和一个名为Person的构造函数,该构造函数接收一个参数名称,并将其存储到该成员变量中。Student类继承Person类,并有一个名为grade的私有成员变量和一个名为Student的构造函数,该构造函数接收两个参数名称和等级。该构造函数使用super(n)语句调用Person类的构造函数,将名称从Student类传递给其父类Person类。
构造方法的顺序和super语句的位置
当一个子类的对象被创建时,首先调用父类的构造方法,然后再调用子类的构造方法。如果子类构造方法中使用了super关键字,super语句必须是子类构造方法代码的第一条语句。
以下是一个例子:
public class Animal {
public Animal () {
System.out.println("调用Animal类的构造方法");
}
}
public class Cat extends Animal {
public Cat () {
super(); //调用父类构造方法
System.out.println("调用Cat类的构造方法");
}
}
public class Main {
public static void main(String[] args) {
Cat c = new Cat();
}
}
在这个例子中,Animal类有一个名为Animal的构造方法,该构造方法用于显示一条消息。Cat类继承Animal类,并有一个名为Cat的构造函数,该构造函数使用super语句调用Animal的构造函数并显示另一条消息。Main类创建了一个Cat类的对象c,它将显示以下结果:
调用Animal类的构造方法
调用Cat类的构造方法
本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/javand1.html
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及版权问题,且不对任何资源负法律责任。
如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。
如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!