Java面向对象编程中的继承、构造函数与集合
1. 构造函数与继承
在Java编程里,构造函数起着至关重要的作用。当我们定义一个类的构造函数时,有些细节需要特别留意。
比如下面这个 Student 类的构造函数:
public Student(String n, String s) {
// NO EXPLICIT CALL TO super(...)
setName(n);
setSsn(s);
setMajor("UNDECLARED");
// etc.
}
虽然这里没有显式调用 super(...) ,但实际上就好像我们写了下面这段代码一样:
public Student(String n, String s) {
super(); // implied
setName(n);
setSsn(s);
setMajor("UNDECLARED");
// etc.
}
这就引出了一个潜在的问题。当我们没有为某个类定义显式构造函数时,Java会尝试为该类提供一个默认的无参构造函数。当我们调用派生类(如 Student 类)的默认无参构造函数时,编译器会自动尝试以自上而下的方式为继承层次结构中的每个祖先类调用无参构造函数。
下面是一个示例:
超级会员免费看
订阅专栏 解锁全文
13万+

被折叠的 条评论
为什么被折叠?



