首先你要明白,抽象类与接口的区别,各有什么好处,类只能继承,继承强调,我有,我这个类系就必须得有.而接口强调扩展,意思你想要有,你就实现,抽象类可以没有抽象方法,这就使行其可以选择性的重写实现interface的方法,而且其是一个类,只能单继承,继承就表有子类都具有,里面的属性和方法没有那么严格的修饰,所以比较灵活.而接口则可以实现多继承,没有限制,但里面属性比较严格,只能是常量,你知道这个就比较容易了,为什么接口会比较严格?因为其定义了一种规则,么,只要想做某方面的扩展,就必须按这个规则办,其可以对一类的问题起作用,适应范围广.抽象类则比较宽松,那么其可供我们支配的内容更多,但又同具备抽象的优点. 打个比方,定义一个车,其下有宝马,有奔驰,车都有车名,车都是打火后运行,但打火方式不一样,定义成一个普通类也不合适.且所有的车都有这功能,不能说有的车不要运行,有的车要运行,这个车定义成一个接口就不合适了,类为就应该这么定义为一个抽象类,假如有一个功能,比如放电影,这就不是所有的车都必备的,且放电影具体实现方式,不一样,有的有的通过物理按健,有的通过屏幕触摸.这个时候就该定义一个接口.
abstract class Car
{
String name;
abstract void dianHuo();
void run()
(
dianHuo();
)
}
interface Movie
{
public abstract void play();
}
class BMW extends Car
{
String name="宝马";
abstract void dianHuo()
{
System.out.println("宝马点火");
}
}
class Benz extends Car implements Movie
{
String name="宝马";
abstract void dianHuo()
{
System.out.println("奔驰点火");
}
public void play()
{
System.out.println("奔驰放电影");
}
}
|