A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐西宏 黑马帝   /  2011-10-3 08:54  /  2010 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一个类A继承某抽象类B并且实现了接口C 类B中有一个抽象方法test();接口C中有一个方法test();实例A后调用test方法 怎么区分调用的是父类还是接口的?

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

5 个回复

倒序浏览
黑马网友  发表于 2011-10-3 10:23:45
沙发
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:03
藤椅
我觉得最可靠的应该是下面这么一种说法了。

实例化都是由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]

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-10-3 12:12:54
板凳
使用谁进行的实例化是调用的是谁的方法。
回复 使用道具 举报
黑马网友  发表于 2011-10-5 08:57:29
报纸
用内部类实现两个方法。。。。要不很难分得清,别人看你代码也看不懂
回复 使用道具 举报
黑马网友  发表于 2011-10-5 09:19:19
地板
关键看实例化对象。A a=new a. a.test(),这样肯定是调用A的方法,反之,则调用的是B的方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马