详述接口

1、什么是接口

1、一个抽象类中都是抽象方法,则可以将该抽象类定义成接口(访问权限控制符(public和friendly)interface 接口名)

       接口内只能包含常量(public static final)、抽象方法及内部类

       接口中的抽象方法的访问权限控制符只能是public,不能是其他

2、接口中的抽象方法必须通过一个类来实现

实现类:一个实现了接口中抽象方法的类,因为Whale类实现了接口中抽象方法,所以Whale类即是实现类】

注意:       
    1、如果一个类实现了一个接口,但没有实现接口中的所有抽象方法,那么这个类必须是abstract类。

     如果多个接口中定义了相同的抽象方法,则在实现类中只实现其中一个即可

    2、接口中没有默认构造方法,而且也不能定义构造方法

    3、接口一般以I开头

    4、接口中的变量为public static final常量(即不能被重新赋值) 

  在JDK8及其以后版本的JDK中,接口内可以定义非抽象静态方法(static修饰的方法)与默认方法(default关键字修饰的方

法),该方法将由接口或实现类直接调用

【注意:接口中的静态方法不能被继承,默认方法可以被继承】


继承:Java类只有单继承;但是Java中接口可以多继承 ,通过extends关键字可以使自定义的接口实现继承,多继承时之间用逗号隔开,但需要注意:  接口只能继承父接口 ,不能继承抽象类或普通类

语法为【访问控制符  修饰符  class  类名  implements  接口1  [,接口2, ……]】

       子接口可以实现父接口中的某些抽象方法(错),

       含有抽象方法的抽象类必须至少有一个子类完全实现了其抽象方法 (对)

       含有抽象方法的抽象类一定至少会有一个非抽象类(与接口的区别)
     

 

抽象类

接口

关键字

abstract

Interface

成员变量

可包含任意合法成员变量(包括各种访问级别的类成员变量和实例成员变量)

只能包含公开静态常量(默认由public static final修饰)

构造方法

有构造方法

无构造方法

方法

可包含任意合法方法(包括各种访问级别的非抽象类方法和非抽象实例方法,也包含除private外的非静态抽象方法)

JDK7及其以下版本JDK只能包含公开且抽象的方法(默认由public abstract修饰),而JDK8开始可以包含default、static修饰的非抽象方法。

如何实现抽象方法

通过自定义类继承抽象类的方式实现抽象类的抽象方法

通过自定义类implements接口实现接口中的抽象方法,定义类可以implements多个接口

是否存在多继承

一个抽象类只能继承一个抽象或非抽象类

一个接口可以继承多个接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值