构造方法能否override 和overLoding?

Pol 2009-02-12 02:00:45
如题

我在一java面试题中看到: 构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading

以下是我的测试:
Overloading

class A {
public A() {}
}
public B extends A {
public void A(String str) {}
}

这样编译没有错,还服合OverLoading的语法,所以我认为构造方法可以OverLoading;

Override
Overloading

class A {
public A() {}
}
public B extends A {
public void A() {}
}

显然:public A() 和 public void A() 不是Override。
但是如果你用Eclipse编写的话,你会发现确 public void A() {}
前面有一个tips,提示“Overrieds A.A”,这和普通方法的Override一样,
这难道是Eclipse的Bug,还是其它什么?


如题,谁能给一个确切的解释?




...全文
318 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
HinanaiTenshi 2009-02-12
  • 打赏
  • 举报
回复
恩,那是个小bug,
eclipse中基类有普通方法和超类某个构造方法同名且参数一样,就会出那个提示.
ZiSheng 2009-02-12
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 swallow_pulm 的回复:]
引用 23 楼 jiangnaisong 的回复:
引用 22 楼 valrent 的回复:
构造方法是不能被继承的,怎么在子类中重载?

答: 是的.不能被继承的,就不能在子类中重载.但人家说的是在同一个类中:构造方法是可以重载的.


说的非常明白,如果原回答也这样就好了。
这样的话,我的帖子中的另一个问题就是Eclipse中的Bug了。

构造器Constructor不能被继承,因此不能重写Overriding,但可以在本类中重载Overloading 。
[/Quote]
是的,那个出现的提示是个bug
铑枪--突廆孒 2009-02-12
  • 打赏
  • 举报
回复
一、[Quote=引用 16 楼 swallow_pulm 的回复:]
回复十一楼:
我是说在子类中重载父类中的构造方法行不?

重载:
方法名同,参数列表不同(顺序不同,类型不同,个数不同),返回类型没要求。(可以在本类和父与子类中实现)
覆盖(重写/属性叫遮盖)
名同,参数同,返回类型同,控制访问不能更严,抛弃的异常不能更多。(出现在子类中)

不知道,这样说对不对??
[/Quote]


二、何为构造方法:即方法名与类名相同,没有返回类型,不能被static ,final,synchronized,abstract,native修饰的方法。
明白这两点后,相信你就会明白构造方法是不能被重写的。只能被重载。。。
Pol 2009-02-12
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 jiangnaisong 的回复:]
引用 22 楼 valrent 的回复:
构造方法是不能被继承的,怎么在子类中重载?

答: 是的.不能被继承的,就不能在子类中重载.但人家说的是在同一个类中:构造方法是可以重载的.
[/Quote]

说的非常明白,如果原回答也这样就好了。
这样的话,我的帖子中的另一个问题就是Eclipse中的Bug了。

构造器Constructor不能被继承,因此不能重写Overriding,但可以在本类中重载Overloading 。
kenesyu 2009-02-12
  • 打赏
  • 举报
回复
cxvxcvxz
云上飞翔 2009-02-12
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 valrent 的回复:]
构造方法是不能被继承的,怎么在子类中重载?
[/Quote]
答: 是的.不能被继承的,就不能在子类中重载.但人家说的是在同一个类中:构造方法是可以重载的.
valrent 2009-02-12
  • 打赏
  • 举报
回复
构造方法是不能被继承的,怎么在子类中重载?
云上飞翔 2009-02-12
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 swallow_pulm 的回复:]
回复十一楼:
我是说在子类中重载父类中的构造方法行不?

重载:
方法名同,参数列表不同(顺序不同,类型不同,个数不同),返回类型没要求。(可以在本类和父与子类中实现)
覆盖(重写/属性叫遮盖)
名同,参数同,返回类型同,控制访问不能更严,抛弃的异常不能更多。(出现在子类中)

不知道,这样说对不对??
[/Quote]
答:说得真好.说得都对.
Pol 2009-02-12
  • 打赏
  • 举报
回复

在继承中的子类可以重载父类的方法。
valrent 2009-02-12
  • 打赏
  • 举报
回复
我觉得,“在子类中重载父类中的构造方法”看不懂?在子类中只能叫重写或者写的是另一个普通方法,两个类中那不叫重载。同一个类里面才叫重载,对不对?
valrent 2009-02-12
  • 打赏
  • 举报
回复
我觉得,“在子类中重载父类中的构造方法”看不懂?在子类中只能叫重写或者写的是另一个普通方法,两个类中那不叫重载。同一个类里面才叫重载,对不对?
wclszh 2009-02-12
  • 打赏
  • 举报
回复
不能被继承,只能重载,不存在重写
Pol 2009-02-12
  • 打赏
  • 举报
回复
回复十一楼:
我是说在子类中重载父类中的构造方法行不?

重载:
方法名同,参数列表不同(顺序不同,类型不同,个数不同),返回类型没要求。(可以在本类和父与子类中实现)
覆盖(重写/属性叫遮盖)
名同,参数同,返回类型同,控制访问不能更严,抛弃的异常不能更多。(出现在子类中)

不知道,这样说对不对??
valrent 2009-02-12
  • 打赏
  • 举报
回复
重载(overload)是同一个类中名字相同但参数不同的多个方法;覆盖(override)是在有继承关系的父、子两个类中名字,参数都相同的方法。不知我理解得对不对。
zuoyangguang 2009-02-12
  • 打赏
  • 举报
回复
class A {
public A() {}
public A(String str){}//重载
}
public B extends A {
public B(){}
public B(String str) {/*super(str);*/}
}
transit136 2009-02-12
  • 打赏
  • 举报
回复
先弄明白什么是重载什么是重写吧
ZiSheng 2009-02-12
  • 打赏
  • 举报
回复
重载,重写,覆盖,这几个概念不能混淆了,重写又叫覆盖。
ZiSheng 2009-02-12
  • 打赏
  • 举报
回复

class A{
public A(int a,int b){
}
public A(String c,String d){

}
}

这叫构造函数的重载
Pol 2009-02-12
  • 打赏
  • 举报
回复
回复八楼:
在B类中写出public A() {} 肯定是不对的,也就是说不能覆盖。
但你说可以重载,我这样:public void A() {} 写不对,那应该怎么写?
public A(参数列表){},这样有错。
mike_24 2009-02-12
  • 打赏
  • 举报
回复
首先构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading 这句话没错。

第二
class A {
public A() {}
}
public class B extends A {
public void A(String str) {}
}

public void A(String str)这个不是构造函数,构造函数是不能有返回值的,连void也不能有。这个也不是Overloading
,因为Overloading的条件是参数不同,方法名和修饰符相同。
加载更多回复(8)
内容概要:本文系统研究了并网虚拟同步发电机(VSG)的自适应惯量阻尼调控策略及其对频率动态响应稳定性的影响,聚焦于VSG在并网工况下的惯量与阻尼协同自适应控制机制。通过构建Simulink仿真模型并结合Matlab代码实现,深入分析VSG的动态特性、有功/无功功率响应及电网频率稳定性,采用根轨迹法评估不同调节系数对系统稳定性的敏感性,揭示其支撑电网频率稳定的能力。研究进一步拓展至微电网黑启动、预同步控制、虚拟阻抗技术以及双机VSG间的功率精确分配等关键应用场景,旨在应对高比例新能源接入带来的系统惯量下降与频率稳定挑战,提升电力系统的韧性与可靠运行水平。; 适合人群:具备电力系统分析、自动控制理论及新能源并网技术背景,熟练掌握Matlab/Simulink仿真工具,从事电气工程、能源互联网、微电网控制等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入探究VSG在并网模式下惯量与阻尼参数的自适应协同调控原理与实现方法;②系统分析VSG控制策略对电网频率动态响应过程的影响规律与稳定边界;③通过仿真实践掌握VSG关键控制参数(如虚拟惯量、阻尼系数)的设计、整定及其对系统性能影响的量化评估;④为微电网的自主黑启动、无缝并网及高渗透率可再生能源系统的频率稳定控制提供先进的技术方案与决策依据。; 阅读建议:建议读者结合文中提供的完整Matlab代码与Simulink模型进行动手仿真实验,重点关注控制策略的模块化设计逻辑、参数动态调整过程与系统整体性能之间的关联,务必结合电力系统小信号稳定性分析理论,深入理解根轨迹、特征值等分析结果所蕴含的物理意义,从而实现从理论到实践的贯通。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧