package com.day04; public interface HDMI { //獲取輸入信號名稱 void input(); //獲取設備名稱 String getName(); } /////////////////////////////////////////////////////////// class computer implements HDMI{ @Override public void input() { System.out.println("電腦信號輸入。。。。。。"); } @Override public String getName() { return "電腦設備"; } } ///////////////////////////////////////////////////////////// class GameMachine implements HDMI{ @Override public void input() { System.out.println("遊戲機信號輸入。。。。。。"); } @Override public String getName() { return "遊戲機設備"; } } ////////////////////////////////////////////////////////////////// class TV { public void output(HDMI hdmi ) { //設備錄入 hdmi.input(); //獲取設備名稱 System.out.println("設備名稱爲:" +hdmi.getName()); } } class TestHDMI{ public static void main(String[] args) { //呈現電腦畫面 computer com = new computer(); GameMachine game = new GameMachine(); //準備終端設備 TV tv = new TV(); tv.output(game); } }
多態的表現形式:讓父類的變量去指向子類對象的地址java
package com.day04.work01; import java.util.Random; public class People { /* 定義一個類是People,定義兩個類,一個是Man,一個是 Woman,Man中有個屬性是老婆,有一個方法 lol, Woman中有個屬性是老公,有一個方法shopping, 還 有一個方法生孩子,先判斷是否有老公,若是有,就建立 一個對象50%機率是man,50%機率是woman,有一個 返回值, 最後若是是男的調用lol,若是是nv的調用 shopping */ } class Man extends People { Woman laopo; void lol() { System.out.println("玩LOL。。。。。。"); } } class Woman extends People { Man laogong; void shopping() { System.out.println("購物。。。。。。。"); } public People getBaby() { People peo = null; if (laogong != null) { Random ran = new Random(); int x = ran.nextInt(2); if (x == 0) { peo = new Man(); } else if (x == 1) { peo = new Woman(); } } return peo; } } class TestPeople { public static void main(String[] args) { Man man = new Man(); Woman woman = new Woman(); woman.laogong = man; People peo = woman.getBaby(); if (peo == null) { System.out.println("沒有老公,不能生孩子"); return; } if (peo instanceof Man) { Man m = (Man) peo; m.lol(); } else { Woman wo = (Woman) peo; wo.shopping(); } } }