/
InterfaceDemo.java
134 lines (101 loc) · 1.84 KB
/
InterfaceDemo.java
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*
abstract class AbsDemo
{
abstract void show1();
abstract void show2();
}
当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用
另一种形式定义和表示,就是 接口 interface
*/
/*定义接口使用的关键字不是class,是interface
对于接口当中常见的成员:而且这些成员都有固定的修饰符。
1.全局常量:public static final
2.抽象方法:public abstract
由此得出结论,接口中的成员都是公共的权限。
*/
interface Demo
{
public static final int NUM = 5;
public abstract void show1();
public abstract void show2();
}
//类于类之间是继承关系。 类与接口之间是实现关系。
/*
接口不可以实例化。
只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化。
否则,这个子类就是一个抽象类。
*/
class DemoImpl implements /*实现*/ Demo
{
public void show1()
{
}
public void show2()
{
}
}
/*
在java中不直接支持多继承,因为会出现调用的不确定性。
所以java将多继承机制进行改良,在java中变成了多实现。
一个类可以实现多个接口。
*/
interface A
{
public abstract void show();
}
interface B
{
public abstract void show();
}
class Test implements A,B//多实现
{
public void show()
{
System.out.println("hahaha");
}
}
/*
一个类在继承另一个类的同时,还可以实现多个接口。
*/
class Q
{
public void method(){}
}
class Test2 extends Q implements A,B
{
public void show(){}
}
/*
接口的出现避免了单继承的局限性。
*/
interface CC
{
public abstract void show();
}
interface MM
{
public abstract void method();
}
interface QQ extends CC,MM//接口与接口之间是继承关系,而且接口可以多继承。
{
void function(){}
}
class WW implements QQ
{
//覆盖3个方法
public void show(){}
public void method(){}
public void function(){}
}
class InterfaceDemo
{
public static void main(String[] args)
{
Test t = new Test();
t.show();
//DemoImpl d = new DemoImpl();
//System.out.println(d.NUM);
//System.out.println(DemoImpl.NUM);
//System.out.println(Demo.NUM);
}
}