本帖最后由 古银平 于 2012-10-29 22:48 编辑
/*
* 1、抽象类是用abstract修饰的类,主要用于提取共性。
* 抽象类不能被实例化(new),只能通过继承了该类的子类才能创建对象。
* 继承抽象类时,必须覆盖该类中的每一个抽象方法,此跟接口类似。
* 抽象类的非抽象方法实现部分功能,并且可以让子类直接调用或者重写(与接口最大的不同)。
*
* 2、继承是面向对象语言的重要机制。
* 在java中,继承是通过扩展(extends)原有的类,声明新类来实现的。
* 扩展声明的新类称为子类,原有的类称为父类。
* 并且子类可以拥有超类的所有属性和方法,同时也可以另外定义自己特有的属性,方法。
*
* 3、接口可以提高程序的复用率,增加程序的可维护性,可扩展性。
* java里面由于不允许多重继承,所以如果要实现多个类的功能,则可以通过实现多个接口来实现。
* 也就是说一个java类只能继承一个父类,但却能同时实现多个接口。
*
* 4、个人理解,不知道这样理解对不对!!
* 假设有Car(车),Plane(飞机),Ship(船)三个类,而他们都是交通工具的一种,
* 因此可以抽象出一个交通工具类:Transportation,并且有一个抽象的方法Run()。
* 但是它们Run的方式又有不同,Car是Walk(),Plane是Fly(),而Ship是Swim()。
* 假设把这个Walk(),Fly()和Swim()都抽象在Transportation()类里或者都写在一个接口里,
* 那么只要继承了这个抽象类或者实现了这个接口的类,这个交通工具就必须又能Walk(),又能Fly(),而且还要能Swim(),这显然不合理。
* 但是如果把这Walk(),Fly(),Swim()分别置于IWalk,IFly,ISwim三个接口中,
* 那么只要继承了Transportation类,并且实现了IWalk接口就是Car,能Walk()。
* 继承了Transportation类,并且实现了IPFly接口就是Plane,能Fly()。
* 而继承了Transportation类,并且实现了ISwim接口就是Ship,能Swim()。
* 同时这样提供了极大的便利与拓展,如:
* 假设有个摩托艇,能在地上Walk(),并且能在水中Swim().那么只要继承了Transportation类,并且实现了IWalk,ISwim接口,就可以了。
* 而如果有个海陆空的怪物,能Walk(),能Fly(),并且还能Swim().那么只要继承Transportation类,同时实现了IWalk,IFly,ISwim三个接口就可以了。
*/ |