java之封裝、繼承、多態簡述
- java語言有三大特徵:
- 封裝(encapsulation):對外部不可見,隱藏對象的屬性和實現細節。
- 繼承(inheritance):一個類繼承另一個類的非私有的成員方法或變量
- 多態(polymorphism):每個對象表現的多樣性
封裝
- 在類中,對不想對外訪問的成員進行私有化,對外提供一個公開的方法訪問私有的成員
封裝私有成員變量 步驟
1.添加private修飾符
2.使用get和set方法
這裏因上個篇章講了封裝的具體實現細節,想要了解可以查看上個博客文章
繼承
- 在原有類的基礎上,產生一個新的類,在新的類中可以訪問原有類的非私有的成員,並且可以添加自己的獨有的成員,這個過程叫做繼承,簡單理解爲一個類繼承另一個類的非私有成員。
繼承好處
- 實現了代碼的重用和擴展
- 具有模擬現實中的關係
類的繼承的使用
1.使用extends關鍵字來實現兩個類的繼承
2.被繼承的類叫做,父類、超類、基類
3.繼承的類叫做,子類、派生類
- 代碼實現
package waking.test.fzj;
/**
* 繼承
* @author waking
*
*/
public class Demo01 extends Student {
public static void main(String[] args) {
//可以訪問原有類的非私有的屬性
Student s = new Student();
s.id=1001;
s.name="waking";
s.gender="mela";
s.age=18;
}
}
class Student{
public int id;
public String name;
public String gender;
public int age;
}
子類對象實例化過程
- 先實例化父類對象
- 默認調用父類默認構造方法
- 在實例化子類對象
不能被子類繼承的成員
- 私有成員不能被子類繼承
- 父類中的構造方法不能被子類繼承,但是會在子類的構造方法中調用
繼承的特點
- 單繼承:一個子類只有一個父類,一個父類可以有多個子類
- 傳遞性:繼承具有傳遞性
多態
- 在生活中,一個事物有不同的表現形式,比如,某個藝術家有三個兒子,大兒子會寫作,二兒子會唱歌,三兒子會跳舞
- 在java代碼中,同一個父類引用類型,指向不同子類的實例,實現不同的操作。簡單理解父類變量,子類對象
代碼實例
package waking.test.fzj;
/**
* 多態
* @author waking
*
*/
public class Demo02 extends Stu{
public static void main(String[] args) {
Stu s = new Demo02();
s.setId(1001);
s.setName("waking");
s.setGender("male");
System.out.println(s);//Stu [id=1001, name=waking, gender=male]
}
}
class Stu{
private int id;
private String name;
private String gender;
public Stu() {
super();
}
public Stu(int id, String name, String gender) {
super();
this.id = id;
this.name = name;
this.gender = gender;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Stu [id=" + id + ", name=" + name + ", gender=" + gender + "]";
}
}
多態注意點
1.子類對象賦給父類變量,向下轉型,自動轉型
2.父類對象賦給子類變量,向上轉型,強制轉型,有可能會報錯