zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    查看linux系统cup及内存信息
    caffe tutorial
    vector 初始化方法
    c++ 常用函数头文件
    caffe——全连接层inner_product_layer
    c++ 将vector转化为数组
    基于 Ubuntu 搭建 RoCE 实践环境
    基于QEMU使用 u-boot 拉取 Linux 内核
    Linux 网桥(Bridge)实践环境搭建
    使用 qemu 模拟器运行 aosp(基于 x86-64 Linux 内核)
  • 原文地址:https://www.cnblogs.com/cathycheng/p/13158166.html
Copyright © 2011-2022 走看看