protected:可以被同一个包中的所有类访问,可以被所有子类访问,不管子类是否在同一个包中。
使用例子:
父类构造无参
设定属性
写一个方法
public class Hero {
public Hero() {
System.out.println("Hero无参执行");
}
protected String name = "英雄";
public void print(){
System.out.println("Hero");
}
}
子类Weapon中
构造一个无参,利用super调用父类
私有化属性
写一个print方法
写一个test1对比方法、this、super调用父类方法
写一个构造方法,对比
public class Weapon extends Hero {
/**
* 隐藏了代码:默认调用了父类无参构造
*/
public Weapon() {
/**
* 调用父类的构造器,必须要在子类构造器的第一行
* 使用this也是要在第一行,两者会冲突
* 必须有一个无参,父类不写无参,子类也用调用不了无参
*/
super();
System.out.println("Weapon无参执行了");
}
private String name = "wuqi";
public void print(){
System.out.println("Weapon");
}
public void test1(){
print();
this.print();
super.print();
}
public void test(String name){
/**
*wudida
*/
System.out.println(name);
/**
* wuqi
*/
System.out.println(this.name);
/**
* 英雄
*/
System.out.println(super.name);
}
测试
调用和输出结果
public class Application {
public static void main(String[] args) {
Weapon weapon = new Weapon();
weapon.test("wudida");
weapon.test1();
}
}
![](D:\Huawei Share\Screenshot\capture_20221001210813256.bmp)
super注意点:
1.super调用父类的构造方法,必须在构造方法的第一个
2.super必须只能出现在子类的方法或者构造方法中
3.super和this不能同时调用构造方法
super和this的区别
this:本身调用者这个对象
super:代表父类对象的应用
前提
this:没有继承也可以使用
super:只能在继承条件才可以使用
构造方法
this();本类的构造
super();父类的构造
标签:无参,System,父类,super,public,out From: https://www.cnblogs.com/seeingxi/p/16747809.html