返回首页
当前位置: 主页 > 网络编程 > Jsp实例教程 >

Interface 还是 Abstract?

时间:2011-03-26 00:05来源:2018年最新注册送彩金www.zhixing123.cn 编辑:麦田守望者

这个其实是个古老的话题,但真正运用到具体的业务系统中,却是有些困难。
首先说说JAVA Interface与Abstract class的语法区别。有一点必须明确JAVA不支持多重继承,但可以实现多个接口。
interface:
public interface Iuser{
public abstract getUserName();
public abstract getUserPwd();
}
说明:接口只能方法声明,不能有实现体,并且必须是抽象和公开的方法。
abstract class:
public abtract class{
public abstract getUserName();
public abstract getUserPwd();
public static void main(String[] args){
System.out.println("this is a test!");
}
}
说明:抽象类中的抽象方法与接口相同,但抽象方法却可声明非抽象方法。
上面已经说过了,JAVA的interface与abstract class的最大区别就是,是否要多重继承了。而按照某些理论多重继承百分之九十九都是有害的。所以就有了面向接口编程的说法了(这是本人的瞎猜)。其实比较好的叫法是“不要面向具体的对象(instance)编程,要面向类(class)编程”。
那么到底何时用interface,何时用abstract。JAVA的官方说法是:
1. 如果要创建不带任何方法定义和成员变量的基类,那么就应该选择接口而不是抽象类。
2. 如果知道某个类应该是基类,那么第一个选择的应该是让它成为一个接口,只有在必须要有方法定义和成员变量的时候,才应该选择抽象类。因为抽象类中允许存在一个或多个被具体实现的方法,只要方法没有被全部实现该类就仍是抽象类。
不过,这么抽象的东西。在实际的运用中基本没有参考价值。所以就有了重构。

顶一下
(0)
0%
踩一下
(0)
0%
标签(Tag):Java Java教程 JAVA实例代码
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
博聚网