java的继承_java中的继承(一)
在java中,所有的類都有一個默認的父類Object,即使我們沒有顯式的去繼承這個類。在Object類中定義了一些方法,其中有幾個方法是我們必須掌握的,比如equals方法,hashCode方法,wait方法,notify方法,getClass方法等。這些方法我會在以后文章給大家介紹,今天我們要討論的是java中的繼承。
在繼承關系中一般兩個角色,父類和子類,其中父類也叫基類,子類也叫派生類。比如Dog類和Animal類,Dog類就是子類,Animal類就是父類,其中子類也就是Dog類繼承了父類也就是Animal類的非私有屬性和方法,同時子類可以增加子類特有的屬性和方法,并且子類可以重寫父類的方法。使用繼承首先可以減少大量的重復性代碼,把公共的代碼提取出來放到父類中同時也方便管理。
接下來我們用代碼來進一步解釋,首先定義一個父類Animal類:
public classAnimal {privateInteger age;publicAnimal(){
System.out.println("Animal construct method");
}publicInteger getAge() {returnage;
}public voidsetAge(Integer age) {this.age =age;
}public voideat(){
System.out.println("eat food");
}
}
然后我們在定義一個dog類:
public class Dog extendsAnimal{private String color; //毛色
publicDog(String color){this.color =color;
}public voidrun(){
System.out.println("Dog is running");
}
@Overridepublic voideat(){
System.out.println("dog eat bone");
}
}
在Dog類中我們添加了子類自己的方法和屬性并重寫了父類的一個方法。在程序中的調用:
public static voidmain(String[] args) {
Dog dog= new Dog("紅色");
dog.eat();
}
控制臺打印:
Animal construct method
dog eat bone
這里需要說的我們在new Dog類的時候父類的構造方法也會執行并且會先于子類執行。定義一個cat類:
public class Cat extendsAnimal{
@Overridepublic voideat(){super.eat();
System.out.println("cat eat finsh");
}
}
調用Cat的eat方法發現不只打印了“cat eat finsh”還打印了父類的“eat? food”。當父類方法和子類方法重名時,可以通過super關鍵字強制訪問父類的變量和方法并且在new子類對象的過程中,也可以通過super關鍵字調用父類的構造方法,沒有使用super的時候默認調用父類的默認的構造方法,父類的構造方法要先于子類執行。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java的继承_java中的继承(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 启动mysql提1067_win7系统启
- 下一篇: java.exe 安装程序_java实现