抽象类与接口的理解

一、什么是抽象类

  简单的说就是类名前面加上abstract这个修饰符,它不但可以修饰类,而且可以修饰方法;

  详细说就是它是某一群体对象的共性集合体,比如苹果,香蕉,菠萝...这些都属于水果,那么水果就是一个抽象类,它具有苹果,香蕉,菠萝...的共性:重量,甜度,大小等;

二、抽象类遵循的规则

  没有规矩不成方圆,既然你加入了我抽象类的行列那就必须遵循我的规则:

  [1] 抽象类的修饰符只能Public,Protect的;

    因为抽象类是要被子类去继承的,如果没有子类去继承这个抽象类,那么它也没有存在的必要;

  [2] 抽象类不能被实例化;

    个人认为是因为抽象类中的抽象方法是没有实现的,就算能被实例化也没有意义,或者把这个理解为一个硬性规定;

  [3]子类必须实现继承的抽象类中所有的抽象方法;

    上面提到抽象方法中是没有实现的,所以子类中必须去实现这些抽象方法,否则子类必须定义成abstract;

  [4]抽象类中的方法不一定要是abstract的,变量的类型也没有限制;

三、什么是接口

interface Book {
    public abstract void add ();
}

  这段代码就是一个简单的接口,接口也是抽象类,只不过一些方面的限制,比抽象类还要严格;

  [1] 接口中的变量必须声明为public static final;

  [2]接口中的方法必须都是抽象的;

posted @ 2017-11-09 14:56  AudreyHepburn  阅读(154)  评论(0编辑  收藏  举报