继承之后方法已经重载,但是为什么还是调用父类的方法?
这个方法是判断调用自己类里的什么方法,调用父类的这个方法,报错说在父类中找不到调用的方法;我就重载这个方法,并把代码复制过来,还是报错提示在父类中找不到调用的方法!
php语言
继承之后方法已经重载,但是为什么还是调用父类的方法
答案:2 悬赏:30 手机版
解决时间 2021-02-22 06:27
- 提问者网友:人傍凄凉立暮秋
- 2021-02-21 10:52
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-02-21 12:16
不知道你的这个类是用什么修饰符修饰的,如果是 private 的话,这个类是私有类,在外部和它的子类是无法访问的。你仔细检查下。
还有你重载这个方法,如果属性还是 private 没变的话,也是无法访问的。
还有你重载这个方法,如果属性还是 private 没变的话,也是无法访问的。
全部回答
- 1楼网友:拾荒鲤
- 2021-02-21 12:41
首先说一点 java是面向对象编程
那什么是面向对象
三大特性:封装(把属性和方法都放到一个类中,然后类创建对象,这样对象就集成了属性和方法)、继承(你问的问题,下面详细说明)、多态(下面也详细说一下)
继承:需要注意四点
子类拥有父类的所有属性
子类中继承父类中所有的属性,在父类中声明的属性在子类内部可以直接调用。
说明:如果访问控制符限制则无法访问。
子类拥有父类的所有方法
子类中继承父类中所有的方法,在父类中声明的方法在子类内部可以直接调用。
说明:如果访问控制符限制则无法访问。
子类不拥有父类的构造方法
子类不继承父类的构造方法,如果需要在子类内部使用和父类传入参数一样的构造方法,则需要在子类内部重新声明这些构造方法。
子类类型是父类类型
子类类型的对象可以自动转换为父类类型的对象,父类类型的对象则需要强制转换为子类的对象,转换的语法个基本数据类型转换的语法相同。
方法重写要求有三点:
1. 在子类中可以根据需要对从基类中继承来的方法进行重写
2. 重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型
3. 重写方法不能使用比被重写方法更严格的访问权限
所以你直接调用父类方法,其实子类自己也有,没有自己重新写一个,当然不算重写,另外你说的重载,说明一下两者分别:
重写是子类的方法覆盖父类的方法,要求方法名和参数都相同
重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考api帮助文档看看类的构造方法
再说说多态:
需要三点:要有继承、要有重写、父类引用指向子类方法
多态性依赖继承特性,可以把多态理解为继承性的扩展或者深入。
在这里把多态性分为两方面来进行介绍,对象类型的多态和对象方法的多态。
对象类型多态
对象类型的多态是指声明对象的类型不是对象的真正类型,而对象的真正类型由创建对象时调用的构造方法进行决定。按照继承性的说明,子类的对象也是父类类型的对象,可以进行直接赋值。
对象方法多态
对象方法的多态基于方法的覆盖,也就是该对象调用的方法具体是子类的方法还是父类的方法,由创建对象时使用的构造方法决定,而不是由声明对象时声明的类型决定。
因为多态涉及太多,所以建议你仔细看一下详细材料才好
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯