• super关键字——Java面向对象基础(15)


    一、super

      1.super指代父类

      2.super.***引用父类中的属性

      3.super.***(***)引用父类中的方法

      4.super(***)使用父类中的构造方法

    public class Father{
        int money=500;
        public Father(){
            System.out.println("父类的构造方法");
        }
        public void fatherDo(){
            System.out.println("父类的方法");
        }
    }
    public class Son extends Father{
        int money=300;
        public Son(){
            super();//调用父类的构造方法
            System.out.println("子类的构造方法");
        }
        public void sonDo(){
            super.fatherDo();//使用父类的方法
            System.out.println("父类的属性:"+super.money);//调用父类的属性
            
        }
    }

      5.需要注意的是,使用父类的构造方法必须要在子类构造方法第一行

     

       6.还需要注意的是,子类默认调用父类的无参构造。倘若父类只写了有参构造,而没有写无参,并且子类中没有手工调用有参构造或者调用了无参构造就会报错

     

     二、super与this的区别

      1.super指代父类,this指代当前类(调用语法相同)

      2.同样的地方是,super(***)与this(***)需要在当前类的构造函数的第一行,否则会报错。

  • 相关阅读:
    leetcode — spiral-matrix-ii
    leetcode — spiral-matrix
    leetcode — maximum-subarray
    leetcode — n-queens
    leetcode — powx-n
    leetcode — anagrams
    bzoj 2194: 快速傅立叶之二 FFT
    bzoj 4503 两个串 快速傅里叶变换FFT
    Codeforces 762D Maximum path 动态规划
    Codeforces 762C Two strings 字符串
  • 原文地址:https://www.cnblogs.com/Unlimited-Rain/p/12489175.html
Copyright © 2020-2023  润新知