• Java中的接口和抽象类


    1.抽象类:被abstract修饰的只有声明,没有实现的类称为抽象类。

    特殊的抽象类:如果一个抽象类中,其所有属性都是公开静态常量,所有方法都是公开抽象方法,我们可以将这种特殊的抽象类改写成接口。

    改写成接口的方式:使用Interface关键字替换abstract class两个关键字;

    接口的特点与上面个描述的特殊的抽象类一致:接口中所有属性都是公开静态常量,所以可以省略public static final三个关键字(既然大家都是一样的,默认省略即可),所有方法都是公开抽象方法,所以可以省略public abstract关键字(既然所有方法都是一样的,那么默认省略即可) 。

    注意:interface 关键字和 class 关键字类似,一个接口编译后会生成一个.class 文件;一个.java 文件中可以有多个接口,但是最多只能有一个公开的接口,且公开接口的接口名与文件名相同。

    接口和抽象类一样的地方在于:都只能声明引用,不能直接创建对象。

    接口和抽象类不同的地方在于:抽象类可以拥有构造函数,虽然不能直接创建对象,但是可以在子类实例化时调用该抽象类的构造器;接口中不能定义构造方法,系统也不会提供默认无参的构造方法。

    抽象类之间可以继承,接口和接口之间也有类似操作,同样使用extends关键字,但是接口之间的继承可以是多个,例如一个接口a可以同时继承接口b、c; 继承多个接口时,多个接口之间用逗号隔开(多继承)。

    抽象类可以被子类继承,接口也可以被子类继承,接口中使用的关键字为implements意为实现;需要注意:1.子类实现接口,必须要实现接口中定义的全部方法才可;2.由于接口中的方法都是默认是public,但类中默认的方法都是default,所以接口的实现类中的方法中关键字public是不能省略的。

     总结:接口与抽象类的不同在于,接口和接口之间可以多继承,并且一个类在继承一个类的同时,可以实现多个接口。

  • 相关阅读:
    设计说明书 转
    软件项目详细设计文档规范
    记帐凭证怎样分类?
    Delphi中WideString类型如何转化成String类型
    更靠谱的横竖屏检测方法
    超级小的web手势库AlloyFinger发布
    狗日的rem
    js 面试的坑
    【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验
    移动端 关于 键盘将input 框 顶上去的解决思路---个人见解
  • 原文地址:https://www.cnblogs.com/LearnSB/p/13219586.html
Copyright © 2020-2023  润新知