方法重写问题
老师,尽管子类可以重写父类的方法,只要返回值、方法名、参数列表完全一致。
但是,方法的重写是面对父类中,public 修饰的属性和方法可以呢?还是private修饰的属性和方法可以呢?
还是在父类中,private修饰的属性和方法不可以在子类重写?
正在回答 回答被采纳积分+1
针对同学开始的问题,老师在这里重新做出以下解释哦~
首先同学要知道,
private:表示私有,私有的意思就是除了自己的类之外,任何人都不可以直接使用,包括它的子类。
顾名思义,方法重写面对的是:父类中public修饰的方法,原因如下:
对于父类中定义为private的方法,子类是继承不到的。这里有个形象的例子可以说明:
儿子没有继承到父亲的一百万财产,所以无法重新定义这一百万财产去怎样使用。
由此可以推断出,在Java中,子类没有继承到父类私有的方法,也就无法重写父类中的私有方法。
重写属性:在之前的问题中,同学问过相关问题哦。这里老师再重复一遍~
父类中public修饰的属性,在子类中能够被继承,也能被重新定义与赋值。
这种特性在Java中虽然没有给出专业的名词解释,但在这里,同学是可以把它看成是属性重写的。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
同学你好 在Java中,所有的private方法默认是final的,即不可继承的。例如:
public class A { private void print() {
System.out.println("A");
} public static void main(String[] args) {
A a = new B();
a.print();
B b = new B();
b.print();
}
}
class B extends A { public void print() {
System.out.println("B");
}
}
最后的结果是:
所以当B继承A时,A的private方法print()不被B继承。
而B中的public方法print()相当于B添加的一个方法,不属于重写。
在重写方法时,需要遵循以下的规则:
(一) 父类方法的参数列表必须完全与被子类重写的方法的参数列表相同,否则不能称其为重写。
(二) 父类的返回类型必须与被子类重写的方法返回类型相同,否则不能称其为重写。
(三) Java中规定,被子类重写的方法不能拥有比父类方法更加严格的访问权限,而private权限最小。
(四)在继承过程中如果父类当中的方法抛出异常,那么在子类中重写父类的该方法时,也要抛出异常,但是抛出的异常不能多于父类中抛出的异常(可以等于父类中抛出的异常)。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星