Java中子类的构造函数
发布时间:2020-12-15 02:07:13 所属栏目:Java 来源:网络整理
导读:在编译这个程序时,我得到错误 – class Person { Person(int a) { } } class Employee extends Person { Employee(int b) { } } public class A1{ public static void main(String[] args){ } } 错误 – 找不到构造函数Person(). 为什么定义Person()是必要的
在编译这个程序时,我得到错误 –
class Person { Person(int a) { } } class Employee extends Person { Employee(int b) { } } public class A1{ public static void main(String[] args){ } } 错误 – 找不到构造函数Person(). 解决方法
创建员工时,您同时创建了一个人员.为了确保正确构造Person,编译器在Employee构造函数中添加对super()的隐式调用:
class Employee extends Person { Employee(int id) { super(); // implicitly added by the compiler. } } 由于Person没有无参数构造函数,因此失败. 你可以解决它 >添加对super的显式调用,如下所示: class Employee extends Person { Employee(int id) { super(id); } } >或者向Person添加一个no-arg构造函数: class Person { Person() { } Person(int a) { } } 通常,编译器也会隐式添加no-arg构造函数.正如Binyamin Sharet在评论中指出的那样,只有在没有指定构造函数的情况下才会出现这种情况.在您的情况下,您已指定Person构造函数,因此不会创建隐式构造函数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |