接口中的方法可以是abstract的吗?

2014-08-25 06:30:01 阅读( 74 )

2560人 收藏本页

标签:Java面试题

interface没有方法体,但是如果interface中有abstract接口,那么这个interface就必须为abstract 例子:

abstract   public     interface   IA   {
public   void   run()   ;
abstract   public   void   setParams()   ;
}
abstract   public   class   CBase   implements   IA   {
public   CBase()   {}
abstract   public   String[]   getParams()   {   }
public   void   run()   {
String[]   s   =   getParams();
if   (s   !=   null   &&   s.length()   >   0)   {
for   (int   i=0;   i<s.length()   ;   i++   )   {
System.out.println(“s["   +   i   +   "]:”   +   s[i]));
}
}
}
}
public   class   CSub   entexted   CBase   {
public   CSub()   {}
protected   String[]   s   ;
public   String[]   getParams()   {
return   this.s   ;
}
}
public   class   DSubSub   extends   CSub   {
public   DSubSub()   {}
public   void   setParams()   {
this.s   =   {“abcd”,   “efg”}   ;
}
public   static   void   main(String[]   args)   {
IA   dsubsub   =   new   DSubSub()   ;
dsubsub.run()   ;
}
}

输出结果:
s[0]:abcd
s[1]:efg

CBase   类是所有电器产品总类,其中的run()函数负责输出某种电器产品的库存总价值。
CSub   类是所有小家电产品类,其中getParams()函数负责得到某种小家电产品库存总价值。
DSubSub类是小家电中的电吹风机类,其中的setParams()函数负责电吹风机的特有计算库存产品价值的方式。
当每一类电器产品都有自己不同的价值计算方式时,使用这种构架就可以很好的分类计算。
而这些业务逻辑实现类在三层构架中是不提供给客户端调用的,提供给客户端的仅仅是Interface,那么这种设计就是相当必要的。

来自IT公司面试手册

下一篇:Tomcat的缺省是多少?怎么修改?

上一篇:有abstract方法的类一定要用abstract修饰么?

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题