黑马程序员技术交流社区
标题:
怎么区分方法是继承来的还是实现
[打印本页]
作者:
徐西宏
时间:
2011-10-3 08:54
标题:
怎么区分方法是继承来的还是实现
一个类A继承某抽象类B并且实现了接口C 类B中有一个抽象方法test();接口C中有一个方法test();实例A后调用test方法 怎么区分调用的是父类还是接口的?
作者:
匿名
时间:
2011-10-3 10:23
interface C
{
void func(); // 接口中的方法默认是public abstract 方法
}
abstract class B
{
abstract void func(); // 访问类型是default类型
}
class A1 extends B
{
void func() // 继承抽象类的访问类型(可以是public,protected)
{
}
}
class A2 extends B implements C
{
void func() // 此处编译错误,必须是public访问类型,说明是实现的接口中的方法
{
}
}
作者:
匿名
时间:
2011-10-3 11:50
我觉得最可靠的应该是下面这么一种说法了。
实例化都是由A类来实例,具体调用哪个方法看其赋值给谁。
若[code=java]B b = new A();
b.test();//则自然是调用b中的test方法[/code]若[code=java]C c = new A();
c.test();//则调用的是C类中的方法。[/code]原帖地址:[url=http://duyiwuer.group.iteye.com/group/topic/12546?page=3]http://duyiwuer.group.iteye.com/group/topic/12546?page=3[/url]
作者:
匿名
时间:
2011-10-3 12:12
使用谁进行的实例化是调用的是谁的方法。
作者:
匿名
时间:
2011-10-5 08:57
用内部类实现两个方法。。。。要不很难分得清,别人看你代码也看不懂
作者:
匿名
时间:
2011-10-5 09:19
关键看实例化对象。A a=new a. a.test(),这样肯定是调用A的方法,反之,则调用的是B的方法。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2