【发布时间】:2014-05-14 18:44:25
【问题描述】:
在一个类中,我可以使用不同的参数类型拥有任意数量的构造函数。我将所有构造函数设为私有,它没有给出任何错误,因为我的隐式默认构造函数是公共的但是当我将隐式默认构造函数声明为私有时,它在扩展类时显示错误。 为什么?
这很好用
public class Demo4 {
private String name;
private int age;
private double sal;
private Demo4(String name, int age) {
this.name=name;
this.age=age;
}
Demo4(String name) {
this.name=name;
}
Demo4() {
this("unknown", 20);
this.sal=2000;
}
void show(){
System.out.println("name"+name);
System.out.println("age: "+age);
}
}
这个不能继承
public class Demo4 {
private String name;
private int age;
private double sal;
private Demo4(String name, int age) {
this.name=name;
this.age=age;
}
Demo4(String name) {
this.name=name;
}
private Demo4() {
this("unknown", 20);
this.sal=2000;
}
void show() {
System.out.println("name"+name);
System.out.println("age: "+age);
}
}
【问题讨论】:
-
您希望子类如何调用
private构造函数? -
difference between access level modifiers 上的这篇文章可能会有所帮助
-
@lgraham076 感谢您的链接
-
@rgettman 我没想到会调用私有构造函数。我看到的是,当我将我的无参数构造函数设为私有时,它显示错误,而它与其他私有构造函数一起运行良好.. 但后来我意识到,根据最近的评论,我的疑问很清楚,即使有一个可以访问的构造函数我可以继承它
标签: java constructor