子类代码:
//继承
package com.oop.Jichen_3;
//学生类继承学校类
public class student extends school {
public student(){//本类的无参构造方法
super();//隐藏代码,调用了父类的无参构造
//this("晨晨");//调用本类的构造器
System.out.println("子类的无参构造输出了");
}
public student(String name){//本类的有参构造方法
System.out.println(this.name = name);
}
private String name = "chx";//私有的属性
public void tes(String name){
System.out.println(name);//输出传输进来的name,如果是无参构造,则默认输出本类的name
System.out.println(this.name);//调用本类的name
System.out.println(super.name);//调用父类的name
}
private void say1(){//私有的方法
System.out.println("陈焕新说一了句话");
}
public void say2(){//利用public给用户获取私有的方法
say1();
this.say1();
super.say();
}
}
父类代码:
//继承
package com.oop.Jichen_3;
//父类:学校类,学校里有老师学生...
public class school {
protected String name="HXin";//protected是受保护的意思
public school(){
System.out.println("无参构造输出了");
}
public void say(){
System.out.println("说了一句话");
}
}
输出main方法:
//输出类,具有main方法
package com.oop.Jichen_3;
public class Application {
public static void main(String[] args) {
student XS = new student();
XS.tes("陈焕新");
XS.say2();
}
}
总结:
/*
super注意点:
1.super调用父类的构造方法,必须在子类构造方法中的第一个
2.super必须只能出现在子类的方法或者构造方法中!(构造方法:没有返回值的方法)
3.super和this不能同时调用构造方法(因为this也是必须在本类的构造方法中的第一行)
VS
this:
代表的对象不同:
this:代表的是调用本类的东西
super:代表的是调用父类的东西
前提:
this:没有继承也是能使用
super:只能在继承条件下才能使用
构造方法:this();本类的无参构造
super();父类的无参构造
*/