在子类中使用什么样的方法可以不实现父类中的所有方法
坐等答案
比如
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
感觉这三种方法都是大同小异.
根据个人喜好...
------解决方案--------------------抽象类