我的java學習筆記(8)關於多態

來源:互聯網
上載者:User

標籤:基礎學習   多態   java   

關於多態

1.在java程式語言中,物件變數是多態的。

2.不能講一個超類的引用賦給子類變數。

3.private方法,static方法,final方法或者構造器,那麼編譯器將可以準確的知道應該調用哪個方法,我們將這種調用方式稱為靜態繫結。

4.動態綁定有一個非常重要的特性:無需對現存的代碼進行修改,就可以對城鄉驚喜擴充。

5.在覆蓋一個方法的時候,子類方法不能低於超類方法的可見度。

6.不允許擴充的類被稱為final類。

7.如果將一個類聲明為final,只用其中的方法自動的成為final,而不包括域。

8.將一個值存入變數時,編譯器將檢查是否允許該操作。將一個子類的引用賦給一個超類變數,編譯器是允許的。但將一個超類的引用賦給一個子類變數,必須進行類型轉換,這樣才能夠通過運行時檢查。

9.只能在繼承層次內進行類型轉換,在將超類轉換成為子類前,應該使用instanceof進行檢查。

10.不會產生異常,只是返回false。之所以這樣處理是因為null沒有引用任何對象,當然也不會引用C類型的對象。

11.如果自下而上在類的繼承階層中上移,位於上層的類更具有通用性,甚至可能更加抽象。

12.為了提高程式的清晰度,包含一個或多個抽象方法的類本身必須被聲明為抽的。

13.除了抽象方法之外,抽象類別還可以包含具體資料和具體方法。

14.抽象類別方法充當著佔位的角色,他們的具體實現在子類中。

15.擴充抽象類別可以有兩種方法:一種是在子類中定義部分抽象方法或抽象方法也不定義,這樣就必須將子類也標記為抽象類別;另一種是定義全部的抽象方法,使其不抽象。

16.類即使不含抽象方法,也可以將類聲明為抽象類別。抽象類別不能執行個體化。但可以定義一個抽象類別的物件變數。

17.private僅對本類可見,public對所有類可見,protected對本包和所有子類可見,預設修飾符對本包可見。

執行個體程式:

測試類別


public class test001 {public static void main(String[] arge){Person[] people = new Person[2];people[0] = new Employee("worker",1000,1987,1,1);people[1] = new Student("boy","電腦");for(Person p : people){System.out.println(p.getName() + "," + p.getDescription());}}}

人類


public abstract class Person {public abstract String getDescription();private String name;public Person(String n){name = n;}public String getName(){return name;}}

僱員類


import java.util.*;public class Employee extends Person {private double salary;private Date hireDay;public Employee(String n,double s,int year,int month,int day){super(n);salary = s;GregorianCalendar gr = new GregorianCalendar(year,month - 1,day);hireDay = gr.getTime();}public double getSalary(){return salary;}public Date getHireDay(){return hireDay;}public String getDescription(){return String.format("一名工資為 %.2f的工人",salary);}public void raise(double p){double raise = salary * p / 100;salary += raise;}}

學生類


public class Student extends Person {private String major;public Student(String n,String m){super(n);major = m;}public String getDescription(){return "一名" + major +"專業的學生";}}


我的java學習筆記(8)關於多態

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.