黑马程序员技术交流社区
标题:
有关重写的疑惑
[打印本页]
作者:
燕国庆
时间:
2012-12-2 11:49
标题:
有关重写的疑惑
本帖最后由 燕国庆 于 2012-12-2 21:12 编辑
当父类的方法是被private修饰时,子类中写一个与之完全相同的函数,这是一个全新的函数吗,在这里是重写吗,在看张老师视频时,里面有这样的问题 有点不明白是怎么回事
作者:
林剑
时间:
2012-12-2 11:57
不是重写,既然父类的方法被private修饰了,那么这个方法就私有了,其他类是无法访问的。重写是子类父类方法一模一样,即使你在子类中写一个与之完全相同的函数,子类无法调用父类中私有的方法。
作者:
坚持远方
时间:
2012-12-2 11:57
因为private方法是不能被子类访问的,所以当子类写了一个和父类完全相同的方法时,这个方法是一个全新的方法,所以不叫重写
作者:
聽聽我dē❤
时间:
2012-12-2 12:37
不是重写,方法重写就是子类覆盖父类同名方法,重写的特点为方法名与父类相同,参数的个数与数据类型一一对应。
方法重写(overiding method) 子类不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
class Human
{
public void say(int age)
{
System.out.println("I am a human.I am "+age);
}
}
class Man extends Human
{
public void say(int age) //重写父类方法say(int age)
{
System.out.println("I am a man.I am "+age);
}
}
重写方法的规则:
1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。
2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。
3、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如:
父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。
作者:
何伟
时间:
2012-12-3 12:45
父类成员被private修饰了,对外界就隐藏了,相当于外界不知道有这么个东东,这么重写了?既然是用private修饰肯定是不想暴漏出去,如果想要重写就不要用private修饰
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2