zoukankan      html  css  js  c++  java
  • 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是不能省略的。

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

  • 相关阅读:
    [GCJ2017R2]Fresh Chocolate
    李耀于NOIP2010集训出的题 Dvalue
    POI ZAW
    POI SZP
    無名(noname)
    幸运序列(lucky)
    [HNOI2001]求正整数
    灰狼呼唤着同胞(brethren)
    神在夏至祭降下了神谕(oracle)
    [bzoj 4237] 稻草人
  • 原文地址:https://www.cnblogs.com/LearnSB/p/13219586.html
Copyright © 2011-2022 走看看