java中抽象类中构造函数的用途

我做了一些实验,想试一下抽象类中的构造函数的用途,发现子类在初始化时会调用父类的无参构造函数,但我不知道怎么样才能用到抽象父类中有参数的构造函数。是不是可以这样理解,抽象... 我做了一些实验,想试一下抽象类中的构造函数的用途,发现子类在初始化时会调用父类的无参构造函数,但我不知道怎么样才能用到抽象父类中有参数的构造函数。是不是可以这样理解,抽象类中只有无参数构造函数才是有意义的,有参构造函数没有意义呢?
在子类被实例化的时候,父类的无参数构造函数就自动调用了,没有被显示的调用。应该只有三楼说的那种用途了吧?
展开
 我来答
yzn6370823
2009-10-12 · TA获得超过359个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:0
展开全部
构造函数是对象的基本,没有构造函数就没有对象。
若果在父类中(这里就是你的抽象类)中显示的写了又参数的构造函数,在子类继承是就必须写一个构造函数来调用父类的构造函数
例子:
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()方法
}
}
官喜悦寿铃
2019-02-18 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:730万
展开全部
当然不是,这是面向对象语言的多态性。一个同样函数名,参数不同系统会识别为不同的函数。如果继承一个类
创建类对象的时候
没有传入参数
,比如new
frame();
那么系统自然会调用无参数的构造函数。如果你新建对象的时候传入了参数,比如new
frame("title");
那么系统就会查找是否有参数类型为string
型的构造函数,如果有则调用该有参构造函数。调用哪个完全取决于你输入的参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
骑良骥涂彤
2019-05-21 · TA获得超过3万个赞
知道大有可为答主
回答量:9893
采纳率:28%
帮助的人:889万
展开全部
当然不是,这是面向对象语言的多态性。一个同样函数名,参数不同系统会识别为不同的函数。如果继承一个类
创建类对象的时候
没有传入参数
,比如new
Frame();
那么系统自然会调用无参数的构造函数。如果你新建对象的时候传入了参数,比如new
Frame("title");
那么系统就会查找是否有参数类型为String
型的构造函数,如果有则调用该有参构造函数。调用哪个完全取决于你输入的参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
freish
2009-10-12 · TA获得超过2878个赞
知道大有可为答主
回答量:3153
采纳率:0%
帮助的人:2679万
展开全部
子类中可以通过super()调用,super里可以有参数!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
本为凡人
2009-10-12 · TA获得超过666个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:139万
展开全部
为什么不能调用有参父类构造?你用什么方式掉的无参构造?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式