abstract class(抽象类)和interface(接口)有什么区别?

.抽象类语法特点
    1.使用abstract关键字修饰
    2.有抽象方法的类一定是抽象类,抽象类不一定有抽象方法
     也就是抽象类可以有抽象方法,也可以有具体方法

    3.抽象类不能实例化,但可以作为子类对象引用
    4.子类继承抽象类,必须要实现所有的抽象方法。否则他也是抽象类
    5.抽象类可以有构造器(方便子类实例化调用),属性无限制
    6.抽象类可以继承抽象类,抽象类也可以继承具体类

java接口语法特点
   1.使用interface修饰
   2.接口是一种特殊抽象类(语法角度),只能有抽象方法和常量
   3.类实现implements接口,该类叫实现类
   4.接口不能有构造方法,不能有静态代码块(静态资源随着类的加载而加载,因为接口没有构造方法,所以不会加载,只能用来实现,这点来讲是冲突的)
   5.类实现接口必须实现所有抽象方法,抽象类也可以实现接口
   6.抽象类可以实现接口,接口不可以实现抽象类。抽象类可以继承抽象类,
   7.接口可以继承接口,且可以多继承接口。类可以多实现接口(接口间用逗号隔开)

猜你喜欢

转载自1790235360.iteye.com/blog/2294424