java public interface_Java 接口interface的基础
原標(biāo)題:Java 接口interface的基礎(chǔ)
定義接口的時(shí)候是由關(guān)鍵字interface來定義自己是一個(gè)接口,格式如下:
interface 接口名
接口體中包含常量的聲明和抽象方法兩部分
接口體中只有抽象方法,沒有普通的方法,而且接口體中所有的常量的訪問權(quán)限一定都是public,而且是static常量,所有的抽象方法的訪問權(quán)限一定都是public;
eg:
interface A{
public static final int MAX=99;
public abstract void add();
public abstract float sum(int a,int b);
1
2
3
4
接口與類的區(qū)別:
接口不能用于實(shí)例化對(duì)象;
接口沒有構(gòu)造方法;
接口中所有的方法必須是抽象方法;
接口不能包含成員變量,除了 static 和 final 變量;
接口不是被類繼承了,而是要被類實(shí)現(xiàn);
接口支持多繼承;
類實(shí)現(xiàn)接口
一個(gè)類需要在類聲明中使用關(guān)鍵字implements聲明該類實(shí)現(xiàn)一個(gè)或多個(gè)接口
例如:
class A implements One,Two
1
還有另外一種方式
Animal的Dog子類實(shí)現(xiàn)One接口
class Dog extends Animal implements One
1
重寫接口的方法
如果一個(gè)非抽象類實(shí)現(xiàn)了某個(gè)接口,那么這個(gè)類必須要重寫這個(gè)接口中的所有方法;
//定義接口IFly
public interface IFly{
//創(chuàng)建方法fly()
public void fly();
}
//創(chuàng)建類Plane并實(shí)現(xiàn)接口IFly
public class Plane implements IFly {
//重寫fly方法
@Override
public void fly() {
// TODO Auto-generated method stub
System.out.println("飛機(jī)在天上飛!");
}
}
public class Test {
public static void main(String[] args) {
//對(duì)象實(shí)例化
IFly t2 = new Plane();
//分別調(diào)用fly()方法
t2.fly();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
定義接口的時(shí)候,如果關(guān)鍵字interface前面加上public關(guān)鍵字,那么就稱這個(gè)接口是一個(gè)public接口,public接口可以被任何一個(gè)類實(shí)現(xiàn)。如果不加public修飾,就稱這個(gè)接口是一個(gè)友好接口,友好接口可以被與該接口在同一個(gè)包中的類實(shí)現(xiàn);
在實(shí)現(xiàn)接口的時(shí)候,要注意一些規(guī)則:
一個(gè)類可以同時(shí)實(shí)現(xiàn)多個(gè)接口。
一個(gè)類只能繼承一個(gè)類,但是能實(shí)現(xiàn)多個(gè)接口。
一個(gè)接口能繼承另一個(gè)接口,這和類之間的繼承比較相似。
例如:接口間的繼承
public interface ISon extends IFather{
void run();
}
1
2
3
4
在Java中,類的多繼承是不合法,但接口允許多繼承。
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的java public interface_Java 接口interface的基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 去中心化存储的QoS是什么?
- 下一篇: iphone11返回上一级手势怎么设置_