• Java中的抽象类和接口


    1.声明方法的存在而不去实现它的类叫做抽象类.它主要用于创建一个体现某些基本行为的类.

    2.接口是抽象类的变异.在接口中所有方法都是抽象的,没有程序体.接口只可以定义static final变量.

    ---------------------------------------------------------------------------------------

    对于抽象类与接口的区别,单纯从概念上很难有明确的答案,我们可以通过"报警门"的例子,来注意二者的区别.

    不同的门都具有某些基本行为,比如open(),close().使用抽象类和接口都可以定义者两个行为.但是如果要增加报警alarm()的特性,应该改怎么办呢?

    是使用抽象类还是使用接口?

    若open,close,alarm都在抽象类中实现,则有些不妥,因为并不是所有的门都具有报警功能.

    若opne,close,alarm都在接口中实现,则具有报警功能的门也必须实现open和close.相当于在每个门的实现类中都要实现open和close

    如果采用以下方案是不是会更好呢?

    把基本行为open和close在抽象类中实现,把alarm行为(或者成为个性化行为)在接口中实现.则一个完美的方案就出来了.

    abstract class Door { 
      abstract void open(); 
      abstract void close(); 
    } 
    interface Alarm{
      void alarm();
    }
    class AlarmDoor extends Door implents Alarm{
      void open(){....};
      void close(){....};
      void alarm(){....};
    }

    ---------------------------------------------------------------------------------------

    抽象类,"is a"关系,抽象出共同的基本行为;接口,"like a"关系,个性化行为,可实现多重继承。

    抽象类就是类的基本行为,共同的;接口是个性化的,若想让类更具个性化,则继承相应个性话的接口即可。

    原文出处:http://android.blog.51cto.com/268543/385282/

  • 相关阅读:
    Innodb存储引擎
    Innodb学习之MySQL体系结构
    C# sql查询数据库返回单个值方法
    Welcome To SWPUNC-ACM
    P2184 贪婪大陆 题解
    线上Java调优-Arthas入门
    JVM调优学习笔记
    RabbitMQ博文收藏
    System.Net.WebException: 远程服务器返回错误: (405) 不允许的方法。
    随机过程-Brown运动
  • 原文地址:https://www.cnblogs.com/shihujiang/p/2811867.html
Copyright © 2020-2023  润新知