zoukankan      html  css  js  c++  java
  • Java抽象类和接口的区别

    简单来说 : 抽象方法 -> “是不是”,类的基本属性 ,子类实现其中的抽象方法; 接口 ->"有没有" ,类的额外功能,子类实现里面的全部方法;
    接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,
    另外,实现接口的一定要实现接口里定义的所有方法,为此,我们可以多设计几个接口 -> 一个功能对应一个接口(松耦合);而实现抽象类可以有选择地重写需要用到的方法,但是也要把未实现的方法补全;
    一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。
    还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.
    具体来说
    海子: http://www.cnblogs.com/dolphin0520/p/3811437.html



    扩展:面向对象的理解:
    当我想要一辆小轿车,有自动驾驶、手动挡、开灯、喇叭等功能, 那么我可以设计多个功能接口,使得这辆汽车(自己)有这些功能,功能要各个子类自己实现;;
    我的小轿车是属于车辆的类型,要有车辆的所有基本属性 ->四个轮子、车窗、车灯等等,那么我可以设计一个抽象父类(概念车),然后子类继承这个,那么这个子类就叫 ----->>>> 有上述功能小轿车

    (如果所有子类都自己去实现,,那么相当有点麻烦,而且功能相同的类,代码就会重复,所有要用抽象父类来实现这些个接口 -> 用来理解接口-抽象类-实现子类 的层级关系);
    态度决定行为,行为决定习惯,习惯决定性格,性格决定命运
  • 相关阅读:
    这是一篇通过open live writer发布的博文
    网卡重启失败
    2020年1月目标
    二、安装docker
    JS中的数据类型,包含ES6,set和map等等
    关于prototype和__proto__,最好的一些解释
    JS中call,apply和bind方法的区别和使用场景
    ThinkPHP5生成word文档代码库
    js/jquery操作iframe
    PHP技术--思维导图
  • 原文地址:https://www.cnblogs.com/neversayno/p/5412404.html
Copyright © 2011-2022 走看看