父類中的公有方法和域(屬性),在類繼承中將會被子類繼承,但是私有的將不能被繼承。
那麼在繼承中子類如何才能繼承到父類的私有域呢?
答案是:在子類的構造方法中通過super()方法調用父類的構造方法。
也就是,在構造子類的同時,為子類構造出跟父類相同的域。如此就在子類的對象中,也擁有了父類聲明的域了。
並且我們也應該這樣做。
演示代碼如下:
Person.java
view plaincopy to clipboardprint?
- public class Person{
- private String name;
-
- public Person(String name){
- this.name = name;
- }
-
- public void setName(String name){
- this.name = name;
- }
-
- public String getName(){
- return name;
- }
- }
Student.java
- public class Student extends Person{
-
- public Student(String name){
- super(name);
- }
- }
TestStudent.java
- public class TestStudent{
- public static void main(String[] args){
-
- Student mStudent = new Student("abc");
- String mName = mStudent.getName();
- System.out.println("Name is : " + mName);
-
- mStudent.setName("efg");
- mName = mStudent.getName();
- System.out.println("Name is : " + mName);
-
- }
- }
打印結果為:
Name is : abc
Name is efg