**1.方法重寫概念: 子父類成員方法的特殊狀況—-覆蓋
子類中出現與父類一某同樣的方法時,會出現覆蓋操做,也稱之爲:override重寫 複寫或者覆蓋.
通俗的說就是子類要使用父類中的功能,同時本身又有本身特有的功能.
重寫須要注意的問題: 子類方法覆蓋父類方法,必需要保證權限大於等於父類的權限. 權限有四種,最大的時public ,最小的時private.
2.方法重寫和方法重載的比較:
方法重寫: 子父類中,方法聲明,方法名,參數列表和返回值類型,必須一某同樣
方法重載:同一個類,方法聲明,方法名同樣,參數列表不同,跟返回值無關
3.this與super
當子類建立對象後,該子類對象自己能夠使用this代替,而該對象當中的父類對象空間,能夠使用super來代替.
以person爲類,建立一我的的父類,建立一箇中國人子類,建立一個Test 做爲測試,打印小明18歲來自科技研究院ide
private String name; private int age; public Person(){} public Person(String name,int age) { this.name = name; this.age = age; } }
public class Chinese extends Person{
private String address;
public Chinese(){}
public Chinese(String name,int age,String address) {
super(name,age);
this.address = address;
}
}學習
public class Test{
Chinese c = new Chinese(「小明」,18,」中國科技研究院」);
}
4.this 與super調用普通成員與構造方法
調用普通成員:
this.成員變量 能夠訪問本類對象的成員變量
super.成員變量 能夠訪問父類對象的成員變量
this.成員方法() 能夠訪問本類對象的成員方法
super.成員方法() 能夠訪問父類對象的成員方法
調用構造方法:
this(其餘參數) 能夠訪問本類其餘的構造方法
super(其餘參數) 能夠訪問父類其餘的構造方法
構造方法:
沒法繼承,默認調用父類無參構造
super():表示訪問父類無參構造方法
super(參數) :表示訪問父類有參構造方法
舉例: 用代碼實現以下語句:使用繼承的方法,不使用抽象:
工資爲8000元的30歲的王小平正在吃飯
工資爲8000元的30歲的王小平老師在講課
成績爲90.0分的14歲的小王在吃學生餐
成績爲90.0分的14歲的小王學生在學習
1.定義一個Person類:
public class Person {
private String name;
private int age;
public Person(){}
public Person(String name,int age){
this.name = name ;
this.age = age;測試
} public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void eat(){ System.out.println(age+"歲的"+name+"在吃飯"); }
}
2.定義一個Teacher類:
public class Teacher extends Person {
private int salary;
public void eat(){
System.out.println(「工資爲」+salary+」元的」+getAge()+」歲的」+getName()+」正在吃飯」);
}
public void lecture(){
System.out.println(「工資爲」+salary+」元的」+getAge()+」歲的」+getName()+」老師在講課」);this
}
public Teacher(){}
public Teacher(String name,int age,int salary){對象
super(name,age); this.salary = salary; } public int getSalary() { return salary; } public void setSalary(int salary) { this.salary = salary; }
}
3.建立一個學生類:
public class Student extends Person{繼承
private double score; public void eat(){ System.out.println("成績爲"+score+"分的"+getAge()+"歲的"+getName()+"在吃學生餐"); } public void study(){ System.out.println("成績爲"+score+"分的"+getAge()+"歲的"+getName()+"學生在學習"); } public Student(){} public Student(String name ,int age,int score){ super(name,age); this.score = score; } public double getScore() { return score; } public void setScore(double score) { this.score = score; }
}
4.測試:
public class test01 {
public static void main(String[] args) {
Teacher t = new Teacher();
t.setName(「王小平」);
t.setAge(30);
t.setSalary(8000);
t.eat();
t.lecture();
Student s = new Student(「小王」,14,90);
s.eat();
s.study();get
}
}**it