java子类构造方法

请问在子类中super关键字的用法(详细些)classPoint{//定义"点"类//x轴坐标和y轴坐标,由于准备用于继承,故修饰为protectedprotectedf... 请问在子类中super关键字的用法(详细些)
class Point { //定义"点"类
//x轴坐标和y轴坐标,由于准备用于继承,故修饰为protected
protected float mX, mY;
public Point(float x, float y) { //构造方法
mX = x;
mY = y;
}
}
class Circle extends Point { //定义"圆"类继承于"点"类
protected float mRadius; //半径
public Circle(float r) { //构造方法
mRadius = r;
}
}
public class Demo {
public static void main(String[] args) {
Circle c = new Circle(2.5f); //实例化"圆"类对象
}
}
本段程序为何报错
Point类不会自动生成一个无参的构造方法吗
展开
 我来答
juanchen2
2011-10-30 · TA获得超过427个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:161万
展开全部
在内存机制中,父类和子类是占用同一块内存的,只不过子类在父类的基础上增加了自己的部分(属性)。子类是依附于父类的,先有父类再有子类。
一个子类对象的产生,必须先调用父类的构造方法产生一个父类实例,然后在这个实例基础上添加自己的部分。

派生类构造方法的执行顺序“
使用this()来调用本类的其他构造方法
使用super()语句调用父类的构造方法
如果子类的构造方法中没有使用super显示地调用父类构造方法,也没有使用this关键字调用重载的其它构造方法,则系统默认调用父类无参数的构造方法,相当于super(),如果父类中没有无参的构造方法,则编译出错
super()或者this()必须在构造方法的第一行,只能有一句。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
babajw
2011-10-30
知道答主
回答量:47
采纳率:0%
帮助的人:11.8万
展开全部
学习
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qdmmy6
2011-10-30 · TA获得超过2674个赞
知道小有建树答主
回答量:1823
采纳率:0%
帮助的人:1076万
展开全部
Circle类继承了Point类!在子类的构造器中,必须(显式或隐式)调用父类的构造器,但你的代码中Circle类的构造器中没有调用Point类的构造器!
如果父类中存在无参构造器,那么子类的构造器会隐式调用,但如果父类中没有无参构造器,那么子类的构造器中就需要使用super来调用父类的构造器,例如:
public Circle(float r) {
super(0, 0);
......
}
==========
子类中可以使用super来调用父类构造器、调用父类方法、访问父类属性。当然,父类的构造器、方法和属性必须对子类是可见的,也就是说访问级别不能是private等!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式