接口与类多对一的关系,如何解决和应用!?!??
当有两个接口,并且用一个类同时具体化这两个接口,而且,这两个接口一些有相同的数据成员和方法,那这个类的实现是怎样的??
例:
public interface a
{
private t;
public void temp1();
public void temp3();
}
public interface b
{
private t;
public void temp1();
public void temp2();
}
public class ty implements a,b
{
?? 这里是怎样的,比如我具体化了一个temp1();
那我到底具体化了那个temp1,我在调用的时候,如何区别
调用的那个接口的方法或是数据成员??
}
问题点数:30、回复次数:6Top
1 楼hjj223()回复于 2004-12-03 21:40:22 得分 10
不同的Interface里面可以有相同的方法。但是不能有相同的成员变量。
因为相同的方法实现了,至于它是哪个interface里来的,这个并不重要。
interface里只是声明方法。而变量不一样,interface里的变量默认为静态,public的。
所以不能有相同的成员变量。
所以上面定义为private t; 是不对的。
Top
2 楼classjava(原始野人)回复于 2004-12-03 21:45:36 得分 10
接口里面成员变量是默认为public的,
类只要实现接口的方法就行了,不用管她来自那个接口Top
3 楼classjava(原始野人)回复于 2004-12-03 21:56:57 得分 10
建议,看这帖
http://community.csdn.net/Expert/topic/3451/3451842.xml?temp=1.202029E-02Top
4 楼ebo(fakir)回复于 2004-12-04 17:00:23 得分 0
先谢谢大家乐!对于,接口中的数据成员我明白了!但是对于方法我还是不明白。
我想问的是,当有两个借口中的方法一样时候,而我在调用的时候,我到底如何区分我调用的是那个接口中的方法!????
比如:
public interface a
{
private t;
public void temp1();
public void temp3();
}
public interface b
{
private t;
public void temp1();
public void temp2();
}
public class ty implements a,b
{
public void temp1()-------这里实现的是a 里的temp1(),还是b中temp1()!!!???
{ 省略内容
}
}
public static void main(string [] args)
{
ty mm=new ty();
mm.temp1();-----------调用的是那个temp1()
}
小弟就是不明白java在这种情况下的默然反映,和这里机制是怎样的??他们是怎样执行的!???
谢!
Top
5 楼ebo(fakir)回复于 2004-12-05 11:40:26 得分 0
怎么,没有人知道么?Top
6 楼herosun(銹)回复于 2004-12-13 00:30:30 得分 0
意思就是说让你看成一个了Top




