前言
作为一个正经博主,我会用最纯洁易懂的方式让你理解面向接口编程。
阅读本篇文章,你需要对以下知识有所了解:
实例
废话少说。打开你的IDE(没有?去下!),新建一个类,命名为Main
,复制下方代码:
1interface 动作 {
2 void 结婚();
3 void 生孩子();
4}
5
6class 如花 implements 动作 {
7 @Override
8 public void 结婚() {
9 System.out.println("为什么?");
10 }
11
12 @Override
13 public void 生孩子() {
14 System.out.println("凭什么?");
15 }
16}
17
18class 美女 implements 动作 {
19 @Override
20 public void 结婚() {
21 System.out.println("就现在!");
22 }
23
24 @Override
25 public void 生孩子() {
26 System.out.println("就今晚!");
27 }
28}
29
30class 帅气的我 {
31 private 动作 小姐姐;
32
33 public 动作 我女朋友是谁() {
34 return 小姐姐;
35 }
36
37 public void 指定女友(动作 小姐姐) {
38 this.小姐姐 = 小姐姐;
39 }
40
41 public 帅气的我() {}
42
43 public 帅气的我(动作 小姐姐) {
44 this.小姐姐 = 小姐姐;
45 }
46
47 public void 我要结婚(){
48 this.小姐姐.结婚();
49 }
50
51 public void 我要生孩子(){
52 this.小姐姐.生孩子();
53 }
54}
55
56public class Main {
57 public static void main(String[] args) {
58 帅气的我 欧巴 = new 帅气的我();
59 动作 如花本人 = new 如花();
60 动作 美女本人 = new 美女();
61
62 欧巴.指定女友(如花本人);
63 欧巴.我要结婚();
64
65 欧巴.指定女友(美女本人);
66 欧巴.我要生孩子();
67 }
68}
别急着运行!多看两遍,猜猜运行结果会是什么?
解析
结构不难,让我们来捋一捋。
接口 |
接口功能 |
接口继承 |
实现功能 |
实现方法 |
动作 |
结婚 |
如花 |
System.out.println("为什么?"); |
new 如花().结婚(); |
--- |
--- |
美女 |
System.out.println("就现在!"); |
new 美女().结婚(); |
动作 |
生孩子 |
如花 |
System.out.println("凭什么?"); |
new 如花().生孩子(); |
--- |
--- |
美女 |
System.out.println("就今晚!"); |
new 美女().生孩子(); |
而帅气的我
是包装类,可以指定new出的女友实例
,并对该女友通过帅气的我
执行指定的方法。
后语
我们可以将面向接口的编程步骤做个整理:
动作
接口规定了可以对女生做的“动作”;
美女
和如花
类继承了动作
类,并规定了对动作产生的反应(执行的方法);
帅气的我
可以接收实例化(new)后的女友对象,并对其使用结婚
和生孩子
两种方法。
祝大家早日脱单!