Hands-on brain and verification:
One
Testinherits.java Example running result and conclusion:
Code:class Grandparent
{
Public grandparent ()
{
System.out.println ("Grandparent Created.");
}
Public grandparent (String string)
{
System.out.println ("Grandparent created.string:" + String);
}
}
Class Parent extends grandparent
{
Public Parent ()
{
Super ("hello.grandparent.");
System.out.println ("Parent Created");
Super ("hello.grandparent.");
}
}
Class Child extends Parent
{
Public Child ()
{
System.out.println ("Child Created");
}
}
public class Testinherits {
public static void Main (String args[])
{
Child C = new Child ();
}
}
Results:
Conclusion: The method of calling a base class by super must be the first statement in the subclass construction method.
Second, study questions
Why do I have to call the construction method of the parent class before the constructor of the subclass is run? Can you turn around? Why?
Solution: Because a constructor is a special method, it is used primarily to initialize an object when it is created, that is, to assign an initial value to an object member variable. is always used with the new operator in the statement that creates the object, and a class can have more than one constructor, and the lesson is differentiated by the number of arguments or by the difference in the parameter type.
Constructs an object, calling its constructor first to initialize its member functions and member variables. Child classes have member variables and member methods of the parent class, and the member variables and member methods inherited from the parent class are not properly initialized.
cannot be called in turn because the parent class does not know what the child class has and the subclass does not get the initialized parent class variable, causing the program to fail.
Inheritance and interface post-class jobs