国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java編程思想讀書筆記(第5-7章)二

2019-11-18 10:41:57
字體:
來源:轉載
供稿:網友

  第6章  重復運用classes
  
  一.繼續(inheritance)
  
  1.  在derived class中overriding某個函數時,只能覆寫base class中的接口,即base class中的public或PRotected或friendly函數。假如試圖overriding一個private函數,雖然編譯通過,但實際上你只是在derived class中添加了一個函數。如
  
  class Cleanser{
  private void prt(){//(b)
  Java/lang/System.java.Html" target="_blank">System.out.println("Cleanser.prt()");
  }
  }
  public class EXPlicitStatic extends Cleanser{
  public void prt(){
  java/lang/System.java.html" target="_blank">System.out.println("ExplicitStatic.prt()");
  }
  public static void main(java/lang/String.java.html" target="_blank">String[] args){
  Cleanser x = new ExplicitStatic();
  x.prt();//(a)
  }
  }
  
  因為Cleanser中的prt()是private,所以不能在其derived class中被覆寫。ExplicitStatic中的prt()只是ExplicitStatic中的一個函數,所以當試圖在(a)處通過多態來調用prt()時,會發生錯誤。假如把(b)處的private去掉,則結果為
  
  ExplicitStatic.prt()
  
  2.  Super的使用
  
  1)通過要害字super可以調用當前class的superclass(父類)。
  例6.1.1.1
  
  class Base{
  Base(){java/lang/System.java.html" target="_blank">System.out.println("Base()");}
  public void scrub() { java/lang/System.java.html" target="_blank">System.out.println(" Base.scrub()"); }
  }
  class Cleanser extends Base{
  private java/lang/String.java.html" target="_blank">String s = new java/lang/String.java.html" target="_blank">String("Cleanser");
  public void append(java/lang/String.java.html" target="_blank">String a) { s+=a; }
  public void dilute() { append(" dilute()"); }
  public void apply() { append(" apply()"); }
  public void scrub() { append(" scrub()"); }
  public void print() { java/lang/System.java.html" target="_blank">System.out.println(s); }
  Cleanser(){
  java/lang/System.java.html" target="_blank">System.out.println("Cleanser(): " + s);
  }
  public static void testStatic(){
  java/lang/System.java.html" target="_blank">System.out.println("testStatic()");
  }
  public static void main(java/lang/String.java.html" target="_blank">String[] args){
  Cleanser x = new Cleanser();
  x.dilute(); x.apply(); x.scrub(); x.print();
  }
  }
  public class ExplicitStatic extends Cleanser{
  ExplicitStatic(){
  java/lang/System.java.html" target="_blank">System.out.println("ExplicitStatic()");
  }
  public void scrub(){
  append(" Detergen.scrub()");
  super.testStatic();
  super.scrub();//調用的是Cleanser.scrub()
  }
  public void foam() { append(" foam()"); }
  public static void main(java/lang/String.java.html" target="_blank">String[] args){
  ExplicitStatic x = new ExplicitStatic();
  x.dilute(); x.apply(); x.scrub(); x.foam();
  x.print(); java/lang/System.java.html" target="_blank">System.out.println("Test base class:");
  Cleanser.main(args);
  testStatic();
  }
  }
  
  運行結果:
  Base()
  Cleanser(): Cleanser
  ExplicitStatic()
  testStatic()
  Cleanser dilute() apply() Detergen.scrub() scrub() foam()
  Test base class:
  Base()
  Cleanser(): Cleanser
  Cleanser dilute() apply() scrub()
  testStatic()
  2)通過super來調用superclass中的成員時,調用的是最近成員。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陈巴尔虎旗| 南部县| 江山市| 岚皋县| 岳阳市| 玛沁县| 安国市| 冕宁县| 永丰县| 屯门区| 金乡县| 黄大仙区| 炉霍县| 商河县| 博白县| 基隆市| 彭阳县| 靖宇县| 广州市| 彭水| 普兰县| 宜川县| 双柏县| 佛山市| 肃南| 奇台县| 栾城县| 乐陵市| 甘谷县| 微山县| 自贡市| 武强县| 桃源县| 寿宁县| 伊金霍洛旗| 河北区| 西贡区| 孝义市| 凉城县| 苍溪县| 河曲县|