当前位置: 技术问答>java相关
类和接口的问题!
来源: 互联网 发布时间:2015-03-08
本文导语: abstract class & interface分别在什么情况下使用?难道只是为了single extends/muti implements吗? 我不明白的是什么情况下使用interface,设计的时候比abstract class体现的优势更明显,无论在灵活性还是在可重用性。。。。上...
abstract class & interface分别在什么情况下使用?难道只是为了single extends/muti implements吗?
我不明白的是什么情况下使用interface,设计的时候比abstract class体现的优势更明显,无论在灵活性还是在可重用性。。。。上面!而反过来也是一样!abstract class 也是interface代替不了的!
我不明白的是什么情况下使用interface,设计的时候比abstract class体现的优势更明显,无论在灵活性还是在可重用性。。。。上面!而反过来也是一样!abstract class 也是interface代替不了的!
|
尽量使用interfaces,不要使用abstract类。若已知某样东西准备成为一个基础类,那么第一个选择应是将其变成一个interface(接口)。只有在不得不使用方法定义或者成员变量的时候,才需要将其变成一个abstract(抽象)类。接口主要描述了客户希望做什么事情,而一个类则致力于(或允许)具体的实施细节。
|
abstract类还是有实现代码的,当你明确部分细节时,就可以用它,可以方便很多。
interfaces用来描述问题。比如所有的实现细节你都不清楚或还不想关心的时候,就用它。(主要用于模块件的接口或扩展性要求很强的地方)
interfaces用来描述问题。比如所有的实现细节你都不清楚或还不想关心的时候,就用它。(主要用于模块件的接口或扩展性要求很强的地方)
|
public abstract class FrameProcess
{
public void doProcess()
{
init();
step1();
step2();
....
closeOut();
}
protected abstract void step1();
protected abstract void step2();
}
public class CustomProcess
extends FrameProcess
{
protected void step1()
{
....
}
protected void step2()
{
....
}
}
{
public void doProcess()
{
init();
step1();
step2();
....
closeOut();
}
protected abstract void step1();
protected abstract void step2();
}
public class CustomProcess
extends FrameProcess
{
protected void step1()
{
....
}
protected void step2()
{
....
}
}
|
good