• 接口与继承:方法覆盖(super)


    源代码

    //父类Parent
    class Parent{
        int x;
        int y;
        Parent()
        {
            x = 0;
            y = 0;
        }
        public void Set(int a,int b)
        {
            x = a;
            y = b;
        }
    }
    //子类Child继承了Parent
    class Child extends Parent{
        int z;
        Child()
        {
            super();//使用父类的构造方法初始化
            z = 0;
        }
        public void Set(int a,int b)//与父类相同的方法
        {
            x = a;
            y = b;
            z = a + b;
        }
        public void Show()
        {
            System.out.println("初始值");
            System.out.println("x = "+ x +"  y = " + y + "  z = " + z);
            System.out.println("调用父类的Set方法Set(1,2)");
            super.Set(1,2);
            System.out.println("x = "+ x +"  y = " + y + "  z = " + z);
            
            System.out.println("调用子类的Set方法Set(1,2)");
            Set(1,2);
            System.out.println("x = "+ x +"  y = " + y + "  z = " + z);
        }
        
    }
    
    public class Test {
        public static void main(String args[])
        {
            Child c = new Child();
            c.Show();
        }
    
    }

    结果截图

    Java“方法覆盖”的语法规则

    (1)覆盖方法的允许访问范围不能小于原方法。

    (2)覆盖方法所抛出的异常不能比原方法更多。

    (3)声明为final方法不允许覆盖。 例如,Object的getClass()方法不能覆盖。

    (4)不能覆盖静态方法

    “方法覆盖(override)”的要点:

      (1)方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)!

      (2)在子类中,若要调用父类中被覆盖的方法,可以使用super关键字。

  • 相关阅读:
    Java实现 LeetCode 461 汉明距离
    在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)
    AM335x(TQ335x)学习笔记——挂载Ramdisk
    Ramdisk文件系统的制作与调试运行
    u-boot向linux内核传递启动参数(详细)
    uboot环境变量与内核MTD分区关系
    MMU
    INTERRUPT CONTROLLER
    UART
    GPIO
  • 原文地址:https://www.cnblogs.com/weipinggong/p/4941911.html
Copyright © 2020-2023  润新知