java接口多态

java接口多态

接口多态和类多态是一样的用法

定义格式:

1
2
3
4
5
6
7
8
9
public interface 父接口{
//内容
}
public class 类名A implements 父接口 {
//内容
}
public class 类名B implements 父接口 {
//内容
}

使用格式:

父接口类型 接口对象名 = new 类名();







1
2
3
4
5
6
7
8
9
10
11
package xiaochenyan.top.demo003;

public class DemoMain{
public static void main(String[] args) {
Computer cm = new Computer();
cm.open();
cm.local(new usbMouse());
cm.local(new usbKeyboard());
cm.close();
}
}
1
2
3
4
5
6
package xiaochenyan.top.demo003;

public interface USB{
public abstract void open();
public abstract void close();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package xiaochenyan.top.demo003;

public class usbKeyboard implements USB{
@Override
public void open() {
System.out.println("打开键盘");
}

@Override
public void close() {
System.out.println("关闭键盘");
}
public void qiaoJiJianPan(){
System.out.println("敲击键盘");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package xiaochenyan.top.demo003;

public class usbMouse implements USB{
@Override
public void open() {
System.out.println("打开鼠标");
}

@Override
public void close() {
System.out.println("关闭鼠标");
}
public void shuBiaoDianJi(){
System.out.println("鼠标点击");
}
}
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
package xiaochenyan.top.demo003;

public class Computer{
public void open(){
System.out.println("打开电脑");

}
public void close(){
System.out.println("关闭电脑");

}
//使用接口进行多态处理
public void local(USB obj)
{
obj.open();

if(obj instanceof usbMouse){
((usbMouse) obj).shuBiaoDianJi();

}else if(obj instanceof usbKeyboard){
((usbKeyboard) obj).qiaoJiJianPan();

}
obj.close();
}

}