原文出处:http://www.bdqn.cn/news/201312/12350.shtml
原文出处:http://my.oschina.net/onlytwo/blog/39193
interface
Runner
//定义接口
{
int
i=
3
;
public
void
start();
void
run();
void
stop();
}
interface
Eater
extends
Runner
//接口间可以继承
{
public
final
static
int
j=
4
;
void
openMouth();
void
upAndDown();
void
goIn();
}
class
TT
implements
Eater
//引用接口
{
public
void
start()
{
System.out.println(
"---------start()-------"
);
}
public
void
run()
{
System.out.println(
"---------run()-------"
);
}
public
void
stop()
{
System.out.println(
"---------stop()-------"
);
}
public
void
openMouth()
{
System.out.println(
"---------openMouth()-------"
);
}
public
void
upAndDown()
{
System.out.println(
"---------upAndDown()-------"
);
}
public
void
goIn()
{
System.out.println(
"---------goIn()-------"
);
}
}
public
class
TestInterface
{
public
static
void
main(String[] args)
{
Runner tt=
new
TT();
//接口的引用指向实现的对象
System.out.println(tt.i);
System.out.println(Runner.i);
tt.start();
Eater ee=
new
TT();
System.out.println(ee.j);
System.out.println(Eater.j);
ee.start();
}
}
1、接口方法用于回调 (这里定义接口是为了使用其接口方法):
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
|
public
interface
ICallback {
public
void
func();
}
public
class
Caller {
ICallback callback;
public
void
doCallback() {
callback.func();
}
public
void
setCallback(ICallback callback) {
this
.callback = callback;
}
}
public
class
MainClass {
public
MainClass() {
}
public
static
void
main(String[] args) {
Caller caller =
new
Caller();
caller.setCallback(
new
ICallback () {
public
void
func() {
System.out.println(
"dosth"
);
}
});
caller.doCallback();
}
}
|
2、向上转型
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
|
interface
People{
void
peopleList();
}
class
Student
implements
People{
public
void
peopleList(){
System.out.println(
"I’m a student."
);
}
}
class
Teacher
implements
People{
public
void
peopleList(){
System.out.println(
"I’m a teacher."
);
}
}
public
class
Example{
public
static
void
main(String args[]){
People a;
//声明接口变量
a=
new
Student();
//实例化,接口变量中存放对象的引用
a.peopleList();
//接口回调
a=
new
Teacher();
//实例化,接口变量中存放对象的引用
a.peopleList();
//接口回调
}
}
运行结果:
I’m a student.
I’m a teacher.
|