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,"李斯");//只調用了方法三 }
}
執行結果:
我是方法一,我符合規則我輸出,其他方法不輸出 我是方法二,我符合規則我輸出,其他方法不輸出 我是方法三,我符合規則我輸出,其他方法不輸出