繼承的基本原則是:
子類繼承父類的所有成員變量(包括靜態(tài)成員);
子類繼承除父類構(gòu)造方法外的所有成員方法(包括靜態(tài)方法);
子類不能繼承父類的構(gòu)造方法,但在其構(gòu)造方法中會隱含調(diào)用父類的默認構(gòu)造方法。
一、基本知識
1、在Java語言中,實現(xiàn)類的繼承使用extends關(guān)鍵字
格式如下:
[public] class SubClass extends SuperClass{ //類體的定義 }
2、被繼承的類稱為父類或超類或基類,而繼承得到的類稱為子類或派生類。
3、子類繼承父類的狀態(tài)(屬性)和行為(方法),同時也可以有自己的特征。
二、關(guān)于繼承的注意事項
1、子類繼承父類中非private的成員變量和成員方法,同時,注意構(gòu)造方法不能被子類繼承。
2、定義類時若缺省extends關(guān)鍵字,則所定義的類為java.lang.Object類的直接子類。
在Java語言中,一切類都是Object類的直接或間接子類。
3、Java僅支持單重繼承,即一個類至多只有一個直接父類。在Java中通過接口來實現(xiàn)多重繼承。
4、父類中定義的private成員變量和方法不能被子類繼承,因此在子類中不能直接使用。我們可以在父類中定義公共的訪問方法和修改方法,子類可以通過這些方法來實現(xiàn)訪問和修改。
三、舉例說明
Person類
package com.baidu.czy; public class Person { //屬性 private String name; private int age; //方法 public String getName() { return name; } public int getAge() { return age; } public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } public void sayHello(){ System.out.println("My name is " + name); } }
Employee類
package com.baidu.czy; public class Employee extends Person { //屬性 private double salary; private String name; //方法 public Employee(){ } public Employee(String name, int age,double salary) { //調(diào)用父類的構(gòu)造方法 super(name, age); this.salary = salary; } public double computeSalary(int hours,double rate){ double salary = hours * rate; return this.salary + salary; } @Override public void sayHello(){ //調(diào)用父類中被覆蓋的方法 super.sayHello(); System.out.println("Hello,I am " + getName()); System.out.println("I am " + getAge()); System.out.println("My salary is " + salary); } }
EmployeeTest類
package com.baidu.czy.test; import com.baidu.czy.Employee; public class EmployeeTest { public static void main(String[] args) { Employee emp = new Employee("劉明",30,5000); System.out.println("姓名= " + emp.getName()); System.out.println("年齡= " + emp.getAge()); //調(diào)用從父類繼承的方法 emp.sayHello(); //調(diào)用子類中定義的方法 System.out.println(emp.computeSalary(10,50.0)); } }
運行結(jié)果:
以上就是java怎么繼承類的詳細內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!