1. 程式人生 > >java入門總結part2

java入門總結part2

繼承(擴充套件)性(涉及supper)

用extends來實現,具體寫法:

package javalearn; class Person{//定義的父類

    String name;      int age;          public Person(String name,int age) {//父類的構造方法         this.name=name;         this.age=age;     }     public void tell() {         System.out.println(name+" "+age);     }

} class Student extends Person {//子類Student繼承父類的所有屬性及方法    public Student(String name, int age) {//因為父類寫了構造方法所以子類必須要寫構造方法然後利用super來繼承         super(name, age);     }    int score;    public void say() {         System.out.println(score);     } } public class Learn {

    public static void main(String[] args) {         // TODO Auto-generated method stub         Student sub1 = new Student(null, 0);//有構造方法必須傳參,通過建立子類例項來使用父類裡的屬性及方法         sub1.age=30;         sub1.name="李斯";         sub1.score=100;         sub1.tell();         sub1.say();     }

}

執行結果:李斯 30

                   100

重寫與過載(包含super)

重寫使用方法:

package javalearn;(不含super) class Person{

    public void tell() {         System.out.println("我是父類的方法");     }

} class Student extends Person {      public void tell() {//名字與父類的方法一樣         System.out.println("我是子類重寫了父類的方法");     } } public class Learn {

    public static void main(String[] args) {         // TODO Auto-generated method stub         Student sub1 = new Student();         sub1.tell();              }

}

執行結果:我是子類重寫了父類的方法

package javalearn;(包含super) class Person{

    public void tell() {         System.out.println("我是父類的方法");     }

} class Student extends Person {      public void tell() {        super.tell();//加了這一句就不會被子類覆蓋         System.out.println("我是子類重寫了父類的方法");     }

} public class Learn {

    public static void main(String[] args) {         // TODO Auto-generated method stub         Student sub1 = new Student();         sub1.tell();              }

}

執行結果:我是父類的方法

                  我是子類重寫了父類的方法

過載使用方法:就是在一個物件也就是一個類裡寫幾個相同名字的方法,但是引數形式或個數不同,以此來根據傳遞的引數不同

                          來在名字相同的方法中選擇符合要求的執行。

上一個圖:

 程式碼演示:

package javalearn; class Person{

    public void tell(int a) {         System.out.println("我是方法一,我符合規則我輸出,其他方法不輸出");     }     public void tell(String name) {         System.out.println("我是方法二,我符合規則我輸出,其他方法不輸出");     }     public void tell(int a,String name) {         System.out.println("我是方法三,我符合規則我輸出,其他方法不輸出");     }

}

public class Learn {

    public static void main(String[] args) {         // TODO Auto-generated method stub         Person per=new Person();         per.tell(3);//只調用了方法一         per.tell("李斯");//只調用了方法二         per.tell(3,"李斯");//只調用了方法三              }

}

執行結果:

我是方法一,我符合規則我輸出,其他方法不輸出 我是方法二,我符合規則我輸出,其他方法不輸出 我是方法三,我符合規則我輸出,其他方法不輸出

明天繼續抽象類與介面,wait。。。。。。。。