我最近被一个问题困扰了,问题是:子类构造方法调用父类构造方法,用super调用,这算构造方法的重载吗。以下是我的思考。
1方法重载的概念:发生在同一个类中。
若这样理解,显然子类构造方法调用父类构造方法是调用,而不是重载的概念。但继承的概念,子类继承父类所有(不包括private)
若这样解释,显然,在子类中含有一份隐藏的父类构造方法,因为这也是子类成员中的一部分,这样解释,子类调用父类构造也就可以理解为调用本类自己的东西,逻辑上应该算重载。然而,继承的另一个概念,子类不会继承父类构造方法,但可以用super关键字调用,若这样理解,那么子类构造调用父类构造方法就是调用,而不是构造方法重载。这不是答案,这是我的思考,请大牛来帮我看看问题
1方法重载的概念:发生在同一个类中。
若这样理解,显然子类构造方法调用父类构造方法是调用,而不是重载的概念。但继承的概念,子类继承父类所有(不包括private)
若这样解释,显然,在子类中含有一份隐藏的父类构造方法,因为这也是子类成员中的一部分,这样解释,子类调用父类构造也就可以理解为调用本类自己的东西,逻辑上应该算重载。然而,继承的另一个概念,子类不会继承父类构造方法,但可以用super关键字调用,若这样理解,那么子类构造调用父类构造方法就是调用,而不是构造方法重载。这不是答案,这是我的思考,请大牛来帮我看看问题
解决方案 »
- final,static ,static final成员变量初始化的问题
- 如何用java实现文件传递功能
- 数组排序,请高手给个结果
- 这个简单的问题怎么解决啊,各位帮忙下啊
- 一个简单的问题,解决一下.我刚学JAVA的.
- 怎样用print(??)打开显示c:/nice.jpg图片啊???????????
- 输出流的小问题
- 安装JDK时出现"warning:default charset GBK not supported,using ISO-8859-1 instead"是怎么回事啊?
- 如何使用JAVA写出的软件双击安装时有安装向导出现并且能把软件信息写入注册表
- 怎样返回一个数组??——急!
- ResultSet rs=pstmt.executeQuery();%>编译过了但是执行时出错是为啥
- 字符串的压缩,求解答
你可以把super看作是子类的一个特殊属性,它指向子类内部的父类对象,你调用父类方法只是调用这个特殊对象的方法,所以跟重载没有关系
另外,重载也不一定发生在同一个类,子类也可以新定义一个和父类的方法同名,返回值相同但参数不同的方法,这也算重载,不算重写
然后要明白重载是什么,重载是方法名相同参数不同。子类构造法调用父类构造法显然不算重载,因为普通方法无法让子类直接调用父类构造,所以java提供super这个关键字用来调用父类的构造。