public class Faculty extends Employee {
public static void main(String[] args) {
new Faculty();
}
public Faculty() {
super(“faculty”);
}
}
class Employee extends Person {
private String name;
public Employee() {
name = “no name”;
System.out.println("(3) Employee's no-arg constructor is invoked");
}
public Employee(String s) {
name = s;
System.out.println(s);
}
}
class Person {
//What if there was a parameterized constructor here
// e.g. public Person(String s){
// ... code ...
// }
}
В приведенном выше коде Java, если я оставлю класс Person пустым и вызову суперконструктор в конструкторе без аргументов класса факультета, будет вызван конструктор сотрудника. Но что, если в классе Person есть параметризованный конструктор. Какой суперконструктор будет вызван? Сотрудник один или человек один?
И вызывается ли суперконструктор, если я не вызываю суперконструктор в подклассе?