java中抽象类中构造函数的用途
发布网友
发布时间:2022-04-24 11:48
我来回答
共5个回答
热心网友
时间:2023-10-11 18:22
构造函数是对象的基本,没有构造函数就没有对象。
若果在父类中(这里就是你的抽象类)中显示的写了又参数的构造函数,在子类继承是就必须写一个构造函数来调用父类的构造函数
例子:
abstract class Person { //定义一个抽象类,必须被继承
Person(int i) {
}
}
public class Student extends Person {
Student() {
super(int i)://必须显示的调用父类构造方法//super代表父类对象
}
}
如果父类中有没有参数的构造函数,在子类中可以不显示的写父类的构造函数,Java会自动调用没有参数的构造函数
例子:
abstract class Person { //定义一个抽象类,必须被继承
Person() { //此构造函数也可以不写,Java会默认添加一个没有参数的构造函数
}
}
public class Student extends Person {
Student() {
//super();//可以不写,Java会自己调用这个super()方法
}
}
热心网友
时间:2023-10-11 18:23
当然不是,这是面向对象语言的多态性。一个同样函数名,参数不同系统会识别为不同的函数。如果继承一个类
创建类对象的时候
没有传入参数
,比如new
frame();
那么系统自然会调用无参数的构造函数。如果你新建对象的时候传入了参数,比如new
frame("title");
那么系统就会查找是否有参数类型为string
型的构造函数,如果有则调用该有参构造函数。调用哪个完全取决于你输入的参数
热心网友
时间:2023-10-11 18:23
当然不是,这是面向对象语言的多态性。一个同样函数名,参数不同系统会识别为不同的函数。如果继承一个类
创建类对象的时候
没有传入参数
,比如new
Frame();
那么系统自然会调用无参数的构造函数。如果你新建对象的时候传入了参数,比如new
Frame("title");
那么系统就会查找是否有参数类型为String
型的构造函数,如果有则调用该有参构造函数。调用哪个完全取决于你输入的参数
热心网友
时间:2023-10-11 18:24
子类中可以通过super()调用,super里可以有参数!
热心网友
时间:2023-10-11 18:24
为什么不能调用有参父类构造?你用什么方式掉的无参构造?