If sub-class constructor does not explicitly invoke any super-class constructor, a super() will be automatically added in the first line of sub-class constructor.
class Father { public Father() { System.out.println("in father!"); } public Father(String wife) { System.out.println("in father wife!"); } } class Kid extends Father { public Kid() { System.out.println("in kid!"); } public Kid(String mother) { System.out.println("in kid mother!"); } } /** * * @author YNZ */ public class TestSuper { /** * @param args the command line arguments */ public static void main(String[] args) { Kid kid = new Kid(); System.out.println("----"); Kid kid1 = new Kid("mother"); } }
output
run: in father! in kid! in father! in kid mother!
so when sub-class doesn't explicitly invoke any super-class constructor, and mean while super class has no non-argument constructor defined, it will cause an compiling error.
No comments:
Post a Comment