The subclass does not inherit the constructor of the parent class, but the constructor of the parent class affects the creation of the child class construction method. Specifically, it is:
①. When the parent class does not have a parameterless constructor method, the subclass cannot have a parameterless construction method, and the parent class construction method must be explicitly called as Super (parameter) in the subclass construction method. Otherwise, the following error will occur:
Implicit super constructor person () was undefined for default constructor. Must define an explicit constructor
When a subclass explicitly calls Super (parameter) in a parameter-constructed method, the following error occurs if you write a non-parametric construction method:
Implicit super constructor person () is undefined. Must explicitly invoke another constructor
②. When the parent class has no parameter construction method, the subclass can have no parameter construction method, or there can be a parameter construction method, in a parameter construction method, you can explicitly call the parent class constructor method or do not call. That is, at this point, the subclass is relatively free to create the constructor method.
Here is a simple example:
There are two classes, person class, and student class, and the student class inherits from the person class. The construction method for two classes is described in the code.
Person class:
Package Human;public class Person {String name;int age; String Gender;private string hobby;public person () {}public person (string n, String g) {this.name = N;this.gender = g;} public person (string n, int A, string g, String h) {this.name = N;this.age = A;this.gender = G;this.hobby = h;} public void SetName (String n) {this.name = n;} public void Setage (int a) {this.age = A;} public void Setgender (String g) {this.gender = g;} public void Sethobby (String h) {this.hobby = h;} Public String GetName () {return this.name;} public int getage () {return this.age;} Public String Getgender () {return this.gender;} Public String Gethobby () {return this.hobby;} public void Informationprint () {System.out.println ("My name is" +this.getname ()); System.out.println ("I Am" + this.getage () + "years old"), if (this.getgender () = = "female") System.out.println ("I Am a Girl" ), ElseIf (this.getgender () = = "Male") System.out.println ("I am A Boy"), ElseSystem.out.println ("Something is wrong!"); System.out.println ("My hobby is" + thIs.hobby);}}
Student class:
Package Human;public class Student extends person {string Stunumber;int score;public Student () {}public Student (string n, String g) {super (n,g);} Public Student (string n, int A, string g, String h) {super (n,a,g,h);} Public Student (String sN, int s) {This.stunumber = Sn;this.score = s;} Public Student (string n, String g, string sN, int s) {super (n,g); this.stunumber = Sn;this.score = s;} Public Student (string n, int A, string g, String h, string sN, int s) {super (n,a,g,h); this.stunumber = Sn;this.score = s;} public void Setstunumber (String num) {this.stunumber = num;} public void SetScore (int s) {this.score = s;} Public String Getstunumber () {return this.stunumber;} public int Getscore () {return this.score;} public void Informationprint () {super.informationprint (); System.out.println ("My number is" + this.stunumber); System.out.println ("My score is" + This.score);}
Test class:
Package Human;public class Testmain {public static void main (string[] args) {person xiaoxip = new Person ("XIAOXIP", +, "fem Ale "," Piano "); Person XIAONANP = new Person ("XIAONANP", "male"); Student Xiaoxis = new Student ("Xiaoxis", "90", "female", "Piano", "124", and "+"); Student Xiaonans = new Student ("Xiaonans", "male", "123", 98); Xiaoxip.informationprint (); Xiaoxis.informationprint (); Xiaonanp.informationprint (); Xiaonans.informationprint ();}}
To learn: an issue with the access permission modifier.
Java Learning Note Seven---the influence of the parent class construction method on the child class with no parameters