我最近被一个问题困扰了,问题是:子类构造方法调用父类构造方法,用super调用,这算构造方法的重载吗。以下是我的思考。
1方法重载的概念:发生在同一个类中。
若这样理解,显然子类构造方法调用父类构造方法是调用,而不是重载的概念。但继承的概念,子类继承父类所有(不包括private)
若这样解释,显然,在子类中含有一份隐藏的父类构造方法,因为这也是子类成员中的一部分,这样解释,子类调用父类构造也就可以理解为调用本类自己的东西,逻辑上应该算重载。然而,继承的另一个概念,子类不会继承父类构造方法,但可以用super关键字调用,若这样理解,那么子类构造调用父类构造方法就是调用,而不是构造方法重载。这不是答案,这是我的思考,请大牛来帮我看看问题
1方法重载的概念:发生在同一个类中。
若这样理解,显然子类构造方法调用父类构造方法是调用,而不是重载的概念。但继承的概念,子类继承父类所有(不包括private)
若这样解释,显然,在子类中含有一份隐藏的父类构造方法,因为这也是子类成员中的一部分,这样解释,子类调用父类构造也就可以理解为调用本类自己的东西,逻辑上应该算重载。然而,继承的另一个概念,子类不会继承父类构造方法,但可以用super关键字调用,若这样理解,那么子类构造调用父类构造方法就是调用,而不是构造方法重载。这不是答案,这是我的思考,请大牛来帮我看看问题
解决方案 »
- 2进制在内存中存储
- Jpanel显示图片问题!
- 这个异常怎么解决
- 菜鸟请教:applet如何执行服务器上的exe,如何下载服务器上的文件
- java中处理表单,我写一个类,是继承httpServlet还是GenericSelet,另外是重载DoPost()方法还是DoGet?()方法还是Service()方法是
- JNI传递对象的处理方法(已通过测试,希望对大家有帮助)
- 解决素数判断和分解质因子的遗留问题:)
- (100分)急!!!java和vc通讯的问题,看看代码有什么错?
- 编译成功后的问题
- 听说微软以后版本的Windows不支持Java,我这个初学者应该怎么办?
- ResultSet rs=pstmt.executeQuery();%>编译过了但是执行时出错是为啥
- 字符串的压缩,求解答
你可以把super看作是子类的一个特殊属性,它指向子类内部的父类对象,你调用父类方法只是调用这个特殊对象的方法,所以跟重载没有关系
另外,重载也不一定发生在同一个类,子类也可以新定义一个和父类的方法同名,返回值相同但参数不同的方法,这也算重载,不算重写
然后要明白重载是什么,重载是方法名相同参数不同。子类构造法调用父类构造法显然不算重载,因为普通方法无法让子类直接调用父类构造,所以java提供super这个关键字用来调用父类的构造。