java 中關於抽象類和接口的範例,通過多態中的向上轉移實現

java 中關於抽象類和接口的範例,通過多態中的向上轉移實現


/*
*模板設計範例
*模擬人的兩個實例學生和工人
*/
abstract class Person{        //人的模板,抽象類
 
	private String name;             //人的共同屬性姓名
	private int age;				 //人的共同屬性年齡

	public Person(String name,int age){  //構造初始化人的基本屬性
		this.name = name;
        this.age = age; 
	}

	public String getName(){
		return this.name;
	}
    
	public int getAge(){
		return this.age;
	}

	public void say(){             //人都有說話的功能
		System.out.println(this.getContent());
	}

	public abstract String getContent();  //抽象方法,人說出的話會不同

}

class Students extends Person{   //繼承父類

    private int score;

    public Students(String name,int age,int score){  //初始化“學生”這個人,有特有屬性成績
       super(name,age); //調用父類構造初始化基本數據
	   this.score = score;
	}

    public String getContent(){  //覆寫抽象方法,即這個學生的行爲
		return "學生信息:"+"姓名:"+super.getName()+" 年齡:"+super.getAge()+" 成績:"+this.score;
    }
}

class Workers extends Person{   //繼承父類

    private int salary;
    
	public Workers(String name,int age,int salary){  //初始化“工人”這個人,有特有屬性成績
       super(name,age); //調用父類構造初始化基本數據
	   this.salary = salary;
	}

    public String getContent(){  //覆寫抽象方法,即這個學生的行爲
		return "工人信息:"+"姓名:"+super.getName()+" 年齡:"+super.getAge()+" 薪水:"+this.salary;
    }

}

public class Mbsj{
    public static void main(String args[]){
		Person p1 =null;  
		Person p2 =null;	
        p1 = new Students("張三",15,95);   //採用對象的多態特性,向上轉移
        p2 = new Workers("李四",28,4000);
		p1.say();
		p2.say();
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章