<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                繼承是面向對象的一個重要特性,子類繼承超類的方法和屬性,可以使代碼通用性強,封裝性好。java中繼承不支持多繼承。下面分析繼承的使用: **一、類,超類和子類** 繼承是子類繼承父類的屬性和方法,比如在同一公司中,經理和普通職員存在待遇存在差異,比如他們都每月領取自己的薪水,而經理又會領到獎金。 則這可以用繼承的概念去構造,子類也能去定義有差異的屬性和方法。繼承的格式是由關鍵字extends表示 如 class Employee extends Manager{ //屬性和方法 } 通過extends 在已存在的類上派生出一個新類。已存在的類被稱為超類,基類或父類,新類被稱為派生類,子類。超類并不比子類存在更多的功能 1.子類可擴展超類沒有的方法。 2.通用的方法常封裝在父類中定義。 3.子類可以增加域,增加方法或覆蓋父類的方法,但不能刪除繼承父類的域和方法。 super關鍵字:是指向父類的,可以擁有調用父類的屬性和方法,如super(name)調用父類具有相同參數的構造器。 下面用如下幾個方面繼承中的幾個概念: **1.繼承層次** 繼承不只局限于一個層次,也可以多層次繼承,有一個公共類派生出所有類的集合被稱為繼承的層次。 java不支持多繼承。 **2.多態** 多態是指一個類可以有多種對象的引用,子類的每個對象也可是超類的對象,比如 Employee e=new Employee(); Employee e=new Manager(); 說明e即可父類Employee的引用,也是子類Manager的引用。 **3.動態綁定** 動態綁定是一種很重要的特性,可以在無須修改現存代碼的基礎上對程序進行擴展,比如生成一個新類B,變量e持有類B的引用,則對類中的非final,private,static修飾的方法,變量e都可調用。 **4.阻止繼承** 父類中若有些方法不想被子類去繼承,則可用final修飾,被稱為不可擴展類。定義形式如下: final class Manager extends Employee{ } 類中的方法也可被修飾成final類.且此方法無法被繼承。如 ~~~ class Employee{ public final String getName(){ return name; } ~~~ **5.抽象類** java中抽象是一個很重要的概念,抽象類和抽象方法的具體實現在其子類中,擴展抽象的方法有如下方式 1.在子類中定義部分抽象方法或不定義抽象方法,則子類必須定義為抽象類。 2.在子類定義全部的抽象方法,則子類不需要定義為抽象類。 ~~~ public abstract class Person { private String name; public String getName() { return name; } public Person(String name){ this.name=name; } public abstract String getDescription(); } ~~~ ~~~ public class Employee extends Person { public Employee(String name,double s,int year,int month,int day) { super(name); salary=s; GregorianCalendar calendar=new GregorianCalendar(year, month-1, day); hday=calendar.getTime(); } @Override public String getDescription() { return String.format(" an employee salry is $%.2f", salary); } private double salary; private Date hday; public double getSalary() { return salary; } public Date getHday() { return hday; } } ~~~ **6.受保護訪問** 在類中常將屬性修飾為private,方法修飾為public 可讓子類不能訪問超類中的私有屬性。然而有時候超類的中的某個屬性能被子類訪問。 則可將此屬性修飾為protected.如Employee的name屬性被protected修飾,子類可訪問該屬性,而不能訪問其他屬性。 java中常用于控制可見性的4個修飾符: 對本類可見-private 對所有類可見-public 對本包和所有子類可見-protected 對本包可見-默認修飾符 **二、Object-所有類的超類** Object類所有java類的祖先,java中每個類都是由它擴展而來。如除基本類型不是對象,字符,布爾類型等都不是對象,所有數組類型,包括基本類型與對象數組都擴展于Object. Object中幾個比較重要的方法,如equals,HashCode()和toString()等方法 1.equals()是檢測一個對象是否與另一個對象相同,在Object中,用于判斷兩個對象的引用是否相同,若引用相同,則認為兩個對象是相等的。 2.hashCode()方法是基于散列碼,散列碼是對象導出的一個整型值,若x,y是兩個不同的對象,則x.hashCode()與y.hashCode()基本不會相同。 Equals()與hashCode()的定義必須一致,如x.equals(y)返回true,則x.hashCode()與y.hashCode()就必須有相同的值。 3.toString()返回對象值的字符串 ~~~ 如 public string toString(){ return “Employee[name=”+name+”,salary=”+salary+”]” } 或 public string toString(){ return getClass().getName()+”[name=”+name+”,salary=”+salary+”]” } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看