oop繼承與重寫筆記一
父類:
public class Animal {
int age; //年齡
double height; //身高
double weight; //體重
Animal()
{
System.out.println("一個動物誕生");
}
Animal(int age,double height,double weight)
{
this.age = age;
this.height = height;
this.weight = weight;
}
//睡覺方法
public void sleep()
{
System.out.println("動物在睡。。。。。");
}
}
子類:
package javas.frist;
//人類
public class Human extends Animal {
Human()
{
System.out.println("一個人誕生");
}
//睡覺方法
@Override //方法重寫
public void sleep()
{
System.out.println("人類在開始睡覺啦。。。。。");
}
}
//子類魚
public class Fish extends Animal{
//睡覺方法
public void sleep()
{
System.out.println("開著眼睛在睡覺。。。。。");
}
}
//子類馬
public class Hose extends Animal {
//睡覺方法
public void sleep()
{
System.out.println("站者睡覺。。。。。");
}
}
測試類:
package javas.frist;
public class Test {
public static void main(String[] args) {
Human h = new Human(); //new 誰就子類方法就顯示
// Human h = new Human();
Animal h = new Human(); //多態現象
//Animal h = new Animal(); //多態現象
System.out.println("年齡:"+h.age);
System.out.println("體重:"+h.weight);
System.out.println("身高:"+h.height);
h.sleep();
Animal a = new Animal();
a.sleep();
}
/**
* 生存子類對象,先執行父類構造方法,在執行子類構造方法
* 註意:構造方法是不能繼承的。
* java采用單根繼承,都是從object繼承
* 繼承好處:提高代碼的復用
*
* 方法重寫:Override /Overwrite,子類重寫了從父類繼承過來的方法
* 方法重載:Overload,方法的名字相同,參數個數,類型,次序不同
* 相同點:都是一種多態性的表現,方法重寫屬於一種動態的多態性,方法重載屬於靜態多態性
*
* 不同點,方法重寫有繼承,方法重載無繼承。
*
* 多態三個條件:
*有繼承、有方法重寫、父類引用指向子類對象
*
*
*
* */
}
oop繼承與重寫筆記一