实际项目中会遇到抽象类,作为底层的代码民工,虽然不常用到,学多点也没啥坏处。 理解十分肤浅,以后还需要补充: 代码如下: //我认为抽象类是为了实现现实生活中的is-a关系 //而is-a就是继承的关系 //比如猪继承动物,那么猪IS-A动物 //使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。 //1.对于一个类,如果其中存在某个方法需要在子类中实现,可以将该方法定义成抽象方法。比如一个几何图形类中有一个计算面积的方法,但是这个方法只能在子类中去实现,这样这个方法就应该被定义成抽象方法。 //2.如果一个类中存在抽象方法,那么这个类就应该被定义成抽象类。 //3.接口中的方法都是抽象方法。 package ky.test; /* * 2011/5/16 */ public abstract class AbstClass { //子类复用可以的方法 public void method1(){ //难道所谓的代码复用就是体现在这里? } //抽象类中的方法声明为“abstract”时,子类必须重写,也就是必须有自己的实现 public abstract String method2(); public abstract String method3(); } package ky.test; //子类 public class SubClass extends AbstClass { @Override public String method3() { method1(); return null; } @Override public String method2() { return null; } }