美文网首页java学习
NO.13 抽象类与接口

NO.13 抽象类与接口

作者: smallnumber | 来源:发表于2017-07-15 00:06 被阅读0次

    抽象方法:是指由abstract修饰,只有方法的定义,没有具体的实现(没有{})。

    抽象类:是指由abstract修饰,其中包含抽象方法的类必须是抽象类(不包含抽象方法的类也可以声明为抽象类)。

    特点:抽象类不能被实例化,是需要被继承的;子类需要重写所有抽象方法,除非也声明为抽象类(不建议)。

    意义:1)封装所有子类所共有的属性和行为-------代码复用

    2)为所有子类提供了统一的类型-----------向上造型

    3)可以包含抽象方法,为所有子类提供了统一的入口;子类的具体实现是不同的,但方法的定义是一致的


    接口:是一个标准、规范,遵守该标准就能干某件事(API才理解),其是一种数据类型,由interface定义,只能包含常量和抽象方法。

    特点:

    1)接口不能被实例化

    2)接口是需要被实现的,实现类,必须重写接口中的所有抽象方法

    3)一个类可以实现多个接口,用逗号分隔,若又继承又实现时,应先继承后实现

    4)接口可以继承接口



    抽象类和接口的区别:

    1)一个类只能继承一个抽象类,但可以实现多个接口

    2)抽象类中可以包含抽象方法和非抽象方法,而接口中的所有方法均为抽象的。

    3)子类继承抽象类必须实现抽象类中所有抽象方法,否则子类也必须是抽象类。而子类实现接口则必须实现接口中的所有抽象方法。


    下面完成求一组图形中最大面积的案例:

    图形类、继承的正方形类和圆形类求面积方法

    下面测试一下代码:

    主方法中创建图形数组并分别创建对象,调用area方法比较面积

    最后输出结果为:

    根据常识,也判断出程序没问题。

    相关文章

      网友评论

        本文标题:NO.13 抽象类与接口

        本文链接:https://www.haomeiwen.com/subject/zotahxtx.html