使用super访问Java中的父类成员

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)
  •   Java 面向对象/Java 继承

    使用super访问Java中的父类成员

    直接访问Java中的祖父母成员:

    预测下列Java程序的输出。

    // filename Main.java
    class Grandparent {
        public void Print() {
            System.out.println("Grandparent's Print()");
        }
    }
      
    class Parent extends Grandparent {
        public void Print() {      
            System.out.println("Parent's Print()");
        }
    }
      
    class Child extends Parent {
        public void Print() {
            super.super.Print();  // Trying to access Grandparent's Print()
            System.out.println("Child's Print()");
        }
    }
      
    public class Main {
        public static void main(String[] args) {
            Child c = new Child();
            c.Print();
        }
    }
    

    输出:Compiler Error
    在“super.super.print();”行中有错误。在Java中,一个类不能直接访问祖父母的成员。尽管它允许在C ++中。在C ++中,我们可以使用作用域解析运算符(:)来访问继承层次结构中的任何始祖的成员。 在Java中,我们只能通过父类访问祖父母成员。 例如,以下程序编译并运行良好。

    // filename Main.java
    class Grandparent {
        public void Print() {
            System.out.println("Grandparent's Print()");
        }
    }
    
    class Parent extends Grandparent {
        public void Print() {
            super.Print();
            System.out.println("Parent's Print()");
        }
    }
    
    class Child extends Parent {
        public void Print() {
            super.Print();
            System.out.println("Child's Print()");
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Child c = new Child();
            c.Print();
        }
    }
    

    输出:

    Grandparent's Print()
    Parent's Print()
    Child's Print()
  •   Java 面向对象/Java 继承
  •   本文标题:使用super访问Java中的父类成员 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/4241.html
    Java的相关文章
      微信返利机器人
      免费:淘宝,京东,拼多多优惠券
      腾讯,爱奇艺,优酷的VIP视频免费解析,免费看
      即刻扫描二维码,添加微信机器人!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注