zoukankan      html  css  js  c++  java
  • java多态之方法调用

    分为四种情况:
    1.第一种情况:父类中有,而子类中没有的方法
    2.第二种情况:父类中没有,而子类中有的方法
    3.第三种情况:父类中有,子类中也有的方法
    4.第四种情况:父类和子类都有,但都是静态方法
    代码举例分析:
    父类:SuperClass
    子类:SubClass
    方法:父类中:doWork1()doWork()static doWork3()
              子类中:doWork2()doWork()static doWork3()

        public static void main(String[] args) {
            SuperClass a=new subClass();
    
            //第一种情况:父类中有,而子类中没有的方法
            a.doWork1();//输出:SuperClass.doWork1,调用了父类中存在的方法
    
            //第二种情况:父类中没有,而子类中有的方法
            //a.doWork2();//编译错误,因为编译的时创建的是编译类型,也就是SuperClass类型,
                        //而该类中没有doWork2()方法,会报错
    
            //第三种情况:父类中有,子类中也有的方法
            a.doWork();//输出:subClass.doWork,体现了多态的特性,调用了子类特定的方法(对象的运行类型)
    
            //第四种情况:父类和子类都有,但都是静态方法
            a.doWork3();//输出:SuperClass.doWork
            /*
             * 分析:静态方法和对象没有关系,访问时用的类名调用(SuperClass.doWork()),也就是用的时编译类型,即父类中的方法.
             *       这种情况称为隐藏,而不是覆盖。只有与对象有关的才称为覆盖。
             */
        }
    }
    class SuperClass{
        public void doWork1(){//只在父类
            System.out.println("SuperClass.doWork1");
        }
        public void doWork(){//子类父类都有
            System.out.println("SuperClass.doWork");
        }
        public static void doWork3(){//子父类都有的static方法
            System.out.println("SuperClass.doWork");
        }
    }
    class subClass extends SuperClass{
        public void doWork2(){//只在子类
            System.out.println("subClass.doWork2");
        }
        public void doWork(){//子类父类都有
            System.out.println("subClass.doWork");
        }
        public static void doWork3(){//子父类都有的static方法
            System.out.println("subClass.doWork");
        }
  • 相关阅读:
    [原创]Android插件化的一种实现
    [原创]HierarchyView的实现原理和Android设备无法使用HierarchyView的解决方法
    使用linux mint 安装无线网卡驱动
    Ubuntu下U盘变成只读的解决方法
    在Android源码中查找Java代码中native函数对应的C++实现
    Android Training Caching Bitmaps 翻译
    [转]获取app的内部储存路径
    [转]sudo找不到命令:修改sudo的PATH路径
    [转]CDN(内容分发网络)技术原理
    电视的应用开发注意事项[持续更新]
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286826.html
Copyright © 2011-2022 走看看