您的位置:首页 > 编程语言 > Java开发

JAVA学习总结之抽象类和接口

2017-09-28 17:56 239 查看
 一、抽象类:一个有abstract修饰的类就是抽象类。必须有子类,抽象类为子类提供约束,为适配器设计模式提供了前提。

    特征: (1)抽象类是用abstract修饰的类;

           (2)抽象类中可以有抽象方法,也可以有普通的成员变量,及成员方法;

           (3)抽象类有构造方法;

           (4)抽象类不能实例化;

           (5)一个类继承了一个抽象类,那么必须实现抽象类中的抽象方法。

    意义:1.为子类提供实现的方法及变量,解决代码复用问题;

          2.为子类提供约束,解决开发规范问题,提供了大型项目开发的解决方法。

       

二、接口:用interface修饰的就是接口。前提:必须要有实现类

    特征:1.接口中的方法,全是抽象方法,都不能有方法体;

          2.一个类实现(implements)了一个接口,则这个类是这个接口的实现类。实现类必须实现这个接口中的所有方法;(因为这个接口中的所有方法都是抽象的,所以必须实现)

          3.接口中的方法,默认都是被public 和 abstract修饰的,无论是否显示的声明了。因此实现了接口的实现类的实现方法,默认的访问修饰符都是public的;

          4.接口中的变量,全是默认被final和static修饰的。无论是否显示的声明了,因此接口中的变量必须赋初值;

          5.一个类可以实现多个接口;

          6.接口可以继承多个接口

接口和抽象类的区别:

          1.修饰词不同。接口用interface ,抽象类用class;

          2.成员变量不同。接口中只能有final.static修饰的变量,抽象类中可以有普通的成员变量;

          3.成员方方法不同。接口中的方法全是public.abstract修饰的方法,抽象类中可以有普通的成员方法;

          4.构造方法不同。接口中没有构造方法,抽象类有构造方法;

          5.实现的方法的权限不同。接口的实现类的方法都是public,抽象类的子类的方法修饰符只要大于等于抽象类即可;

          6.一个类可以实现多个接口。而一个类只能继承一个父类;

          7.抽象类依然属于类,要遵从类的继承和抽象原则。而接口打破了继承和抽象的原则,提高可扩展性。

         

接口和抽象类的相同点:

          1. 接口和抽象类都不能实例化,需要借助实现类或子类实例化;

          2.都可以有抽象方法;

          3.都为实现类或子类提供了约束。

意义:1.为实现类提供约束,解决开发规范问题,提供了大型开发的解决方法;

      2.接口提高了程序的扩展性

大原则:一个类继承了父类,则子类不能缩小父类的权限,只能放大或等于父类的权限

        一个类实现了一个接口,这个实现类也不能缩小接口的权限,只能方法或等于接口的权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: