父类的父类ManKind
package day07;
public class ManKind {
int sex;
int salary;
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public void manOrWomen(){
if (this.sex==1){
System.out.println("男");
}else if(this.sex==0){
System.out.println("女");
}
}
public void employed(){
if (this.salary==0){
System.out.println("no job");
}else{
System.out.println("have a job");
}
}
}
父类Kids
package day07;
public class Kids extends ManKind {
public int getYearsOld() {
return yearsOld;
}
public void setYearsOld(int yearsOld) {
this.yearsOld = yearsOld;
}
int yearsOld;
public void printAge(){
System.out.println(this.yearsOld);
}
public static void main(String[] args) {
Kids someKid = new Kids();
someKid.setSex(0);
someKid.setSalary(100);
someKid.setYearsOld(19);
someKid.manOrWomen();
someKid.employed();
someKid.printAge();
}
}
子类Kk
package day07;
public class Kk extends Kids {
public void test(){
super.salary=1;//super可以调用父类的父类的属性,salary是Kk的父类Kids,Kids的父类的ManKind的属性,可以一直向上追溯
super.yearsOld=1;//super可以调用父类的属性,yearsOld是Kk的父类Kids的属性
super.setYearsOld(100);//super可以调用父类的方法
super.printAge();//super可以调用父类的方法
super.manOrWomen();//super可以调用父类的父类的方法
}
public static void main(String[] args) {
Kk k=new Kk();
k.test();
}
}
运行截图
无参构造器
Mankind1
package day07;
public class Mankind1 {
public Mankind1(){
System.out.println("mankind1");
}
}
Kids1
package day07;
public class Kids1 extends Mankind1 {
// public Kids1(){
// super();
// }
public static void main(String[] args) {
Kids1 k=new Kids1();//此处在调用kids1的默认无参构造,此过程中它访问到父类的无参构造,它就等于第4到第6行
}
}
运行截图
有参构造器
Mankind1
package day07;
public class Mankind1 {
// public Mankind1(){
// System.out.println("mankind1");
// }
int sex;
int salary;
//有参构造器
//当父类使用有参构造时,子类必须要配合父类也构造一个有参构造器
public Mankind1(int sex,int salary){
this.sex=sex;
this.salary=salary;
}
}
Kids1
package day07;
public class Kids1 extends Mankind1 {
// public Kids1(){
// super();
// }
/**
*当父类使用有参构造时,子类必须要配合父类也构造一个有参构造器
* 并且要写在第一行
*/
public Kids1(int sex,int salary){
super(sex,salary);
}
public static void main(String[] args) {
Kids1 k=new Kids1(9,100);//此处在调用kids1的默认无参构造,此过程中它访问到父类的无参构造,它就等于第4到第6行
}
}
注意:
父类存在无参构造器时,子类可以创建构造器