zoukankan      html  css  js  c++  java
  • Override和Overload

    Override存在于继承关系当中,对父类方法的重写(覆盖),正因为要对父类的方法进行重写,因此不能比父类“还大”,比如抛异常应该更具体(可等),访问权限也应该更广(可等);当然就访问权限而言,父类为了被继承显然是不能使用private修饰的,否则就不能继承了

    public class Father {
        void makeMoney() throws Exception {
            System.out.println("father's money");
        }
    }
    public class Son extends Father {
    @Override
    public void makeMoney() throws IOException {
    System.out.println();
    }

    Overload存在于同一个类或者接口中,参数列表不通,只不过是方法名一样而已,称为重载,这里的参数列表包括参数类型,参数个数,参数顺序。这里的参数不同还是很容易理解的,因此传参的时候也不能让参数列表引起歧义。可是返回值类型不同,能算重载吗?我的理解是不行的,

    public void sayHh() {
            System.out.println("hh");
        }
    
        public int sayHh(int i) {
            System.out.println("hh");
            return 0;
        }

    对于上面的代码我的理解是在调用方法的时候我们通过参数列表确定唯一方法,倘若参数列表一样,返回值不同,那么无法确定到底是哪一个方法,那么编译都过不去,还调什么方法,还谈什么返回值。

  • 相关阅读:
    Android学习——SAX解析方式
    Android学习——pull解析方式
    Android学习——使用okhttp
    开课第十五周周总结
    顶会热词3
    顶会热词2
    顶会热词1
    配置JAVA环境
    配置mybaits的一些坑
    Maven配置和idea种tomcat配置的一些坑点
  • 原文地址:https://www.cnblogs.com/shun998/p/12684178.html
Copyright © 2011-2022 走看看