• java覆写


    1、覆写:子类定义了与父类中同名的方法,但是方法覆写时,必须考虑到权限,即子类覆写的方法不能拥有比父类方法更加严格的访问权限。

    public>default>private

    class A{
        public void fun(){
            System.out.println("A");
        }
    }
    
    class B extends A{
        public void fun(){
            System.out.println("B");
        }
    }
    public class ExtendsDemo1 {
        public static void main(String[] args) {
            B b = new B();
            b.fun();
        }
    }

    输出结果

    B

    2、覆写结果的分析要素:

    • 观察实例化的是哪个类
    • 观察这个实例化的类里面调用的方法是否已经覆写过,如果没有覆写则调用父类中的方法。
    class A{
        public void fun(){
            print();
        }
        private void print(){   //子类不可见
            System.out.println("A");
        }
    }
    
    class B extends A{
        public void print(){
            System.out.println("B");
        }
    }
    public class ExtendsDemo1 {
        public static void main(String[] args) {
            B b = new B();
            b.fun();
            b.print();
        }
    }

    输出结果:

    A
    B

    3、由子类调用父类中被子类覆写的方法,加上super.方法();

    class A{
        public void fun(){
            print();
        }
        public void print(){
            System.out.println("A");
        }
    }
    
    class B extends A{
        public void print(){
            super.print();
            System.out.println("B");
        }
    }
    public class ExtendsDemo1 {
        public static void main(String[] args) {
            B b = new B();
            b.fun();
        }
    }

    运行结果:

    A
    B

    4、

     

     5、属性的覆盖

    class A{
        int age =10;
        public void fun(){
            print();
        }
        public void print(){
            System.out.println("A");
        }
    }
    
    class B extends A{
        int age = 100;
        public void print(){
            super.print();
            System.out.println(this.age);
            System.out.println(super.age);
        }
    }
    public class ExtendsDemo1 {
        public static void main(String[] args) {
            B b = new B();
            b.fun();
        }
    }

    输出结果:

    A
    100
    10
  • 相关阅读:
    Coin-row problem(1139)
    算法的稳定性
    折半查找的实现(1010)swust-oj
    判断回文(0315)SWUST-OJ
    逆置单链表(0957)swust-oj
    单链表上查找算法的实现(0955) swust-oj
    单链表的插入操作的实现(0952)SUWST-OJ
    单链表的链接(0954)swust-oj
    单链表的删除操作的实现(0953)swust-oj
    ASP.net core 2.0.0 中 asp.net identity 2.0.0 的基本使用(三)—用户账户及cookie配置
  • 原文地址:https://www.cnblogs.com/cathycheng/p/13158166.html
Copyright © 2020-2023  润新知