java——繼承、封裝概念和例子


一、封裝

 

  java是面向對象的語言,為了讓類的內部數據不被隨意的訪問修改,我們會用訪問修飾符對其被訪問權限進行修飾。例如我們經常看見的實體類。里面的成員變量我們就是用private修飾符進行修飾,然后提供getter、setter方法,這樣外部就不能直接訪問該類的成員變量了,只能通過get、set方法訪問。總的來說封裝就是我們用權限修飾符private對其方法和成員變量進行修飾,不讓外部隨意訪問。

權限訪問修飾符 類  子類 其他包
public
protected  
default(不寫時默認值)    
private      

二、繼承

  java中用extends表示繼承的關系,如:public class Student extends Person{......}    父類:Person、子類:Student

  那子類能繼承父類那些東西呢?

  1. 子類能繼承父類所有public和protected修飾的成員變量和成員方法。用private修飾的不能繼承。
  2.         default修飾(不寫修飾符默認為default)的成員變量和成員方法,如果之類和父類同包,則能繼承。否則不能繼承。
  3.         如果出現子類和父類成員變量名或成員方法名相同的情況,父類的成員變量會被人隱藏,父類的成員方法會被覆蓋。只能同過super關鍵字引用。(隱藏和覆蓋是不相同的)

  例子:

public class Inherit {
  
  public static void main(String[] args) {
    Person2 student = new Student("小王");
    student.getMessge();
    
  }
  
}
class Person2{
  public String name;
  
  public Person2(){
    System.out.println("Nothing!");
  }
  
  public void getMessge(){
    System.out.println("class Person");
  }
}
class Student extends Person2{
  public String name;
  
  public void getMessge(){
    System.out.println("class student");
  }
  
  public Student(String name){
    super();
    System.out.println(name+" is a student!");
  }
}

 

 結果:

Nothing!
小王 is a student!
class student

  子類和父類的初始化順序:

    1.   父類靜態變量
    2.   父類靜初始化塊
    3.   子類靜態變量
    4.   子類靜初始化塊
    5.   父類非靜態變量
    6.   父類非靜初始化塊
    7.   父類構造器
    8.   子類非靜態變量
    9.   子類非靜初始化塊
    10.   子類構造器

三、多態

  https://www.cnblogs.com/chenssy/p/3372798.html

 參考資料:http://www.cnblogs.com/Qian123/p/6868437.html

百度文庫:http://wenku.baidu.com/view/73f66f92daef5ef7ba0d3c03.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM