Java中子类的构造函数如何书写

今天做了一道题,有关于继承

我在想,怎样让子类中的构造函数给它继承的父类的私有变量radius赋值,显然是要通过调用构造函数,在c++里,可以这样

Cylinder(double r,double h):Circle(r){

...(代码块)

}

但在Java中我试了一下,不行,百度一下之后,要调用super函数,这里有很多重难点。

1.首先我们得明白,继承是不会继承构造函数,只能调用(隐式或显式)

2.如果父类没有定义构造函数或者存在无参构造函数,所有子类的构造函数会默认调用父类的构造函数(即在前面省略了super();)

3.如果父类没有无参的构造函数,或者是子类的构造函数想调用父类的含参构造函数(就像这题一样,我们希望调用Circle的含参构造函数来初始化radius),就要第一行显式使用super( [arg0][,arg1]….),显式调用的参数类型,参数个数和你想调用的父类构造函数对应,注意一定要写在第一行,否则编译不通过。

posted @   December钟  阅读(2889)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示