美文网首页
关于多态的一些思考

关于多态的一些思考

作者: lifesmily | 来源:发表于2018-08-23 22:42 被阅读8次
    多态存在的三个必要条件
    • 继承
    • 重写
    • 父类引用子类对象

    多态是指同一个接口具有不同的表现行为。使用多态的调用方法时,首先检查父类中是否有该方法,如果没有编译错误,如果有调用子类的同名方法。

    class Fu {
        public int age = 40;
        static {
            System.out.println("initial block fu");
        }
        public Fu(){
            System.out.println("hello fu");
        }
        public void show(){
            System.out.println("show Fu");
        }
    }
    
    class Zi extends Fu{
        public int age = 20;
        static {
            System.out.println("initial block Zi");
        }
        public Zi(){
            System.out.println("hello zi");
        }
        public void show(){
            System.out.println("show Zi");
        }
        public void method(){
            System.out.println("method here");
        }
    }
    
    public class testDemo {
        public static void main(String[] args){
            Fu demo = new Zi();
            System.out.println(demo.age);
            demo.show();
        }
    
    }
    

    输出为:

    initial block fu
    initial block Zi
    hello fu
    hello zi
    40
    show Zi
    

    上面除了多态需要理解,还要注意的是父类中的属性当用父类去调用时不会被重写。初始代码块的问题,如果没有static是一个对象初始化,和构造方法一起初始化,但是上面是先执行的父和子的初始代码块,然后执行父和子的构造方法,因为先初始化类,然后初始化对象。

    相关文章

      网友评论

          本文标题:关于多态的一些思考

          本文链接:https://www.haomeiwen.com/subject/pgmtjftx.html