关于JAVA中的接口和抽象类和抽象方法的问题!(200分)

  • 主题发起人 主题发起人 billy_yuan
  • 开始时间 开始时间
B

billy_yuan

Unregistered / Unconfirmed
GUEST, unregistred user!
在JAVA中一个类要实现一个接口的话,那么那个类就必须实现该接口里面的所有的方法,
那么该类的子类还是要实现该接口的所有方法,然而如果要修改接口的话,那么该类和
他的子类都要修改,如果这样的话,基类的设计就得非常小心了,用接口真的要这么小心么
不过说句老实话,他的这种机制提供了非常好的扩展性,和代码复用性,我好喜欢啊!
但是有什么好的方法可以避免这样的事件发生呢!
抽象类也一样,如果增加了父类的一个方法,那么你在子类中也要增加一个方法的说明,
如果有N个子类的话,那你就得增加N个子类的方法,神啊,救救我吧!
本人是JAVA的初学者,请大家多多关照!
 
200分啊,没有人动心么,发表一下看法也行啊!
 
接口就是接口,是最基础的东西,哪能随便更改?
删除方法是万万不能的,
至于增加方法,那就派生一个新接口吧,谁叫你当初没好好设计呢?
 
首先是接口有个原则。。。一旦公布就不能更改。所有 该接口肯定是不行。
不过还有别的办法可以解决你的问题。
你可以设计尽量小得接口,满足特定要求的接口,每个方面都设计独立的接口。而在实现上
你可以让你的类继承多个接口。这样就可以有灵活性了。
还有你可以让接口继承接口,再不改变该以前类的前提下 让新的实现类可以实现新的接口
还有就是利用设计模式,比如Decorator可是动态的增加类的功能。。
 
使用“包装”的方法来扩展类,
而且总体来说“包装”比继承要好。
 
但是一旦我在接口中增加了一个新的方法以后,我必须在实现这个接口的类中显示实现
这个方法,虽然你可以用一个空方法代替,但是还是很烦的,
我想一个类定义以后很难保证你以后不要修改该类的定义啊!
 
接口的定义应该比较谨慎。
可以先用抽象类来代替接口,实现系统。
在系统比较稳定的情况下,在把抽象类来转化为接口
 
to oyjing:
好啊,这样挺好。
 
多人接受答案了。
 
interface aaa
{
public void setA() ;
public void setB() ;
public void setC() ;
}
class aaaAdapter implements aaa
{
public void setA()
{
}
public void setB()
{
}
public void setC()
{
}
}
class E
{
aaaAdapter Createaaa()
{
return new aaaAdapter()
{
public void setA()
{
System.out.print("I love you setA /n");
}
public void setC()
{
System.out.print("I love you setC /n") ;
}
} ;
}
public E()
{
aaaAdapter a = Createaaa() ;
a.setA();
a.setB();
a.setC();
}
}
运用设计模式的适配器模式和类工场组合搞定!
 
后退
顶部