例子1:父類:public class Person {public String name;public int age;public Person(String name,int age){ this.name=name; this.age=age;}public Person() /*如果不寫這個建構函式,看看對類Student有什麼影響。*/{}public void getInfo(){System.out.println(name);System.out.println(age);}}子類:public class Student extends Person{String school;public Student(String name,int age,String school){super(name,age);this.school=school;}public Student(){}public void study() { System.out.println("學習非常棒。");}public static void main(String[] args){Person p=new Person();p.name="person";p.age=45;p.getInfo();Student s=new Student();s.name="student";s.age=26;s.getInfo();s.study(); }}例子2:在子類中可以根據需要對從父類中繼承來的方法進行改造----方法的覆蓋 ( 也叫重寫)。覆蓋方法必須和被覆蓋方法具有相同的方法名稱、參數列表和傳回值類型。例如例子1那個Student程式,它繼承了Person類的getInfo方法,這個繼承到的方法只能列印出學生的name和age,不能列印出學生專有的資訊,比如學校的名稱等,這時我們就應該在類Student中重新編寫一個getInfo方法,這就是方法的覆蓋。父類:package javatest;public class Person {public String name;public int age;public Person(String name,int age){ this.name=name; this.age=age;} //如果不寫這個建構函式,看看對類Student有什麼影響。public Person(){}public void getInfo(){System.out.println(name);System.out.println(age);}}子類繼承父類:public class Student extends Person{String school; //父類是沒有的,子類特有的public Student(String name,int age,String school){super(name,age);this.school=school;}public Student(){}public void study() { System.out.println("學習非常棒。");}public void getInfo(){ super.getInfo(); System.out.println(school);}public static void main(String[] args){Person p=new Person();p.name="person";p.age=45;p.getInfo();Student s=new Student();s.name="student";s.age=26;s.school="清華大學";s.getInfo();s.study(); }}