好久沒有來更新博客了,最近在學習的過程中,發現有段代碼執行結果很有趣,所以就記錄下來,希望大家可以使用下面的代碼自己來運行,看看運行結果是怎麼樣的,根據運行的結果來思考下,爲什麼會是這樣?
// 入口
public class MainDemo {
public static void main(String[] args) {
Person person = new ZhangSan();
Food food = new Fruit();
person.eat(food);
person.eat(new Fruit());
}
}
// 定義食物接口
public interface Food {
}
// 定義水果繼承食物
public class Fruit implements Food {
}
// 定義人類
public abstract class Person {
public void eat(Food food) {
System.out.println("每個人都需要吃食物");
}
public void eat(Fruit fruit) {
System.out.println("有的人喜歡吃水果");
}
}
// 定義張三繼承人類
package com.java.demo;
public class ZhangSan extends Person {
public void eat(Fruit fruit) {
System.out.println("有的人喜歡吃水果");
}
}
上述的代碼已經都貼完整了,現在大家可以思考下,執行後的結果會是什麼?
大家可以將自己思考的思路可以留言在博客下,便於大家一起討論學習!