Java初学6.4

Java初学6-4 - super关键字

Super代表父类的引用,用于访问父类的方法,属性,构造器。

package ExtendsTest;

public class ExtendsSuper  {
    public static void main(String[] args) {
        SubTest subTest = new SubTest();
        subTest.SuperTest05();
        subTest.Test1000();
        SubTest subTest001 = new SubTest(18);
    }
}
class SuperTest{
    int n1=1;//
    public int n2=2;
    protected int n3=3;
    private int n4=4;
    public SuperTest() {
        System.out.println("父类的无参构造器!");
    }
    public SuperTest(String n){
        System.out.println("父类的有参构造器!");
    }
    void SuperTest01(){
        System.out.println("SuperTest01");
    }
    public void SuperTest02(){
        System.out.println("SuperTest02");
    }
    protected void SuperTest03(){
        System.out.println("SuperTest03");
    }
    private void SuperTest04(){
        System.out.println("SuperTest04");
    }


    public void Test(){
        System.out.println("SuperTestTest方法。");
    }
}
class SubTest extends SuperTest{
    public int n1=2024;
    public void SuperTest05(){
        //super可以访问父类的属性,但是不能访问私有的属性!
        //格式:super.属性名。
        System.out.println(super.n1);
        System.out.println(super.n2);
        System.out.println(super.n3);
        //System.out.println(super.n4);//错误
        //同样地,方法也遵循!
        //格式:super.方法名(形参列表)
        super.SuperTest01();
        super.SuperTest02();
        super.SuperTest03();
        //super.SuperTest04();//错误
    }
    //调用父类的构造器,并且只能放在第一行:
    public  SubTest(){
        super();//只能在第一行!!!
    }
    public  SubTest(int a){
        super("哈哈哈哈");//只能在第一行!!!
    }
   /* public void Test(){
        System.out.println("SubTestTest方法。");
    }*/

    public void Test1000(){
        System.out.println("SubTestTest1000方法。");
        //如何调用SuperTest中的Test方法呢?
        Test();//1.先找SubTest,有就调用,没有则找父类。存在且!!!非私有!!!,就调用。以此类推。
        super.Test(); //2.直接查找父类,子类即使有也不访问。不限于直接父类,可以一直向上查找,直到找到为止。
        this.Test(); //3.等价于Test();
        //同样地适用于属性。
        System.out.println(n1);
        System.out.println(this.n1);
        System.out.println(super.n1);//不限于直接父类,可以一直向上查找,直到找到为止。
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值