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
  • 相关阅读:
    正式搬家到博客园
    (SQL 技术篇)主键,外键,唯一约束,check约束
    Firefox 多个版本共存
    HTML5的视频格式之争
    jquery 提示简单效果插件 cluetip
    C# GUID的使用
    免费的jquery ui 收集
    js 验证身份证号码
    加速Web开发的9款知名HTML5框架
    Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
  • 原文地址:https://www.cnblogs.com/cathycheng/p/13158166.html
Copyright © 2011-2022 走看看