黑马程序员技术交流社区
标题:
关于继承的问题。
[打印本页]
作者:
dzr19850306
时间:
2013-2-15 09:24
标题:
关于继承的问题。
1,子类能够修改父类的方法的类型吗?比如父类有protected change();
子类可以修改为public change();
2,父类具有两个私有成员 private int a; private int b;
一个public add(){return a+b};
子类继承父类之后
子类使用add()方法会出现什么问题吗?
作者:
黄玉昆
时间:
2013-2-15 09:45
对于第一个:那不叫修改父类方法的类型,而是权限,protected和public是权限修饰符,只要子类的权限大于或等于父类的权限,这个方法是可以被复写的,而且你这个方法,没返回类型,就是change前面要加上需要的类型,如int型或什么的。你可能把权限修饰符和返回类型弄混了。
对于第二个:子类继承父类,是可以直接使用父类的方法的,因为已经继承了,所以可以使用
测试代码如下:
class Fu
{
private int a = 2;
public int add()
{
return a+a;
}
public int getA()
{
return a;
}
}
class Zi extends Fu
{
}
class Demox
{
public static void main(String[] args)
{
Zi z = new Zi();
int x = z.add();
System.out.println(z.a);//会报错,不可访问private
System.out.println(x);//结果为4
}
}
复制代码
作者:
刘勇强
时间:
2013-2-15 10:00
方法重写的两个原则之一是:重写的方法不能比被重写的方法有更严格的访问权限 所以第一个应该是可以的
作者:
dzr19850306
时间:
2013-2-16 12:11
黄玉昆 发表于 2013-2-15 09:45
对于第一个:那不叫修改父类方法的类型,而是权限,protected和public是权限修饰符,只要子类的权限大于或 ...
谢谢了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2