- public class Ch69 { //主類別
- public static void main(String[] args) { //主方法
- Dog d1=new Dog("憨憨",2,1.28); //創建Dog類別的新物件,取名為 d1
- Dog d2=new Dog("球球",1,1.35);
- Cat c1=new Cat("咪咪",3,0.95);
- d1.showProfile(); //執行d1物件的showProfile()方法
- d1.makeSound(2);
- d2.showProfile();
- d2.makeSound(3);
- c1.showProfile();
- c1.makeSound(5);
- }
- }
- class Animal{ //定義父類別Animal
-
- String name; //定義Animal的屬性
- int age;
- double weight;
-
- Animal(String n, int a, double w) //定義Animail的建構子,建構子名稱必須和類別名稱一樣,建構子規範了新物件應有的屬性,透過建構子,快速的把物件初始化。
- {
- name=n; //把建構子的參數n指派給此類別所產生的物件,作為它的屬性
- age=a; //把建構子的參數a指派給此類別所產生的物件,作為它的屬性
- weight=w; //把建構子的參數w指派給此類別所產生的物件,作為它的屬性
- }
-
- void showProfile() //定義Animal的方法
- {
- System.out.println(name+"今年"+age+"歲,體重"+weight+"公斤.");
- }
- }
- class Dog extends Animal //定義Dog子類別,它繼承自Animal父類別,所以它具有和Animail一樣的屬性和方法
- {
- Dog(String n, int a, double w) //定義Dog子類別的建構子(建構子不能繼承,所以必須重寫,但可調用父類別的建構子來使用)
- {
- super(n,a,w);
- }
- void makeSound(int x)//在Dog子類別中,新增方法
- {
- for(int i=1; i<=x; i++)
- System.out.print("汪~");
- System.out.println();
- }
- }
- class Cat extends Animal
- {
- Cat(String n, int a, double w)
- {
- super(n,a,w);
- }
- void makeSound(int x)//在Cat子類別中,新增方法
- {
- for(int i=1; i<=x; i++)
- System.out.print("喵~");
- System.out.println();
- }
- }
複製代碼 |