日期:2014-05-20  浏览次数:20690 次

在子类中使用什么样的方法可以不实现父类中的所有方法
坐等答案
比如
public interface A{

public void a() public void b() public void c() public void d() public void e()

}
里面有5个方法
我要实现 A类
public b implentems A()
{
// 如果我只感兴趣 b方法 其他不要 怎么处理
  public void b(){}
}

------解决方案--------------------
弄个抽象类,其他方法不实现了呗。如果真出现这种不需要的方法出现的情况,就是你的设计有问题了
------解决方案--------------------
抽象方法是不可以不实现的,要实现你的要求,则可以设计一个适配器类,适配器类实现接口中的方法,但是都是空方法,不做具体的处理,然后再继承这个适配器类,这样,就可以只实现需要的方法了
------解决方案--------------------
你定义了某个类去实现 某接口,就必须去实现接口的全部方法

// 如果我只感兴趣 b方法 其他不要 怎么处理


那其他的方法 就空实现呗
------解决方案--------------------
用抽象类实现A接口, 然后B类继承这个抽象类!貌似还有个一个适配器的方法,原理一样.
------解决方案--------------------
public abstract class b implentems A
------解决方案--------------------
如果是继承类,可以在父类中把不需要的方法定义为private,可是接口中不允许有private方法
------解决方案--------------------
抽象类咯,呵呵,如果你不抽象类,可以用个类把那个接口都空实现,再继承这个类!
------解决方案--------------------
利用适配器(类),对源(本例的接口A),进行适配(继承或关联),以后目标类就可以实现这个适配器,其作用就是用适配器去置换掉不需要实现的方法。

------解决方案--------------------
这个可以看看AWT中的适配器
------解决方案--------------------
对于接口来说不可能。
你可以把public interface A改为public class A,把其中的方法全部返回null。
然后extend A就可以了。
如果你是在扩展别人的。
你也可以考滤实现这个接口把不感兴趣的都返回null.
------解决方案--------------------
三种方法:
1:A为接口 B只实现B方法 其他的方法空实现 
2:A为抽象类 B继承A 这样B就可以只实现B方法
3: 用适配器类C去实现A的方法,C中的方法都是空实现 B继承C,B只需要实现B方法就OK
感觉这三种方法都是大同小异.
根据个人喜好...
------解决方案--------------------
抽象类