qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          一個例子理解java面向對象的機制

          //定義Gun類
          public abstract class Gun {
          protected String name;
          // 帶參數的構造方法,特殊的方法,名字必須與類名相同
          public Gun() {
          public Gun(String name) {
          this.name = name;
          // 構造抽象方法,并在子類中繼承和定義。
          abstract void sound();
          public String getName() {
          return name;
          public void setName(String name) {
          this.name = name;
          //Carbine繼承自Gun
          public class Carbine extends Gun {
          //帶參數的構造方法,特殊的方法,名字必須與類名相同
          public Carbine(String name) {
          this.name = name;
          //Gun類下不同的子類擁有同名的sound()方法,但是內容不同,在調用sound()方法時會根據具體的Gun而自動調用相應的方法。
          //這用到了Java的多態性。
          void sound() http://www.huiyi8.com/jiaoben/
          // TODO Auto-generated method stub
          System.out.println("DaDaDa!"); javascript特效
          //Rifle繼承自Gun
          public class Rifle extends Gun {
          //帶參數的構造方法,是特殊的方法,名字必須與類名相同
          public Rifle(String name) {
          this.name = name;
          //Gun類下不同的子類擁有同名的sound()方法,但是內容不同,在調用sound()方法時會根據具體的Gun而自動調用相應的方法。
          //這用到了Java的多態性。
          void sound() {
          // TODO Auto-generated method stub
          System.out.println("Peng! Peng! Peng!");
          //定義Person類
          public class Person {
          private String name;
          public String getName() {
          return name;
          public void setName(String name) {
          this.name = name;
          // 體現多態性。
          public void shoot(Person p, Gun g) {
          System.out.println(this.name + " shoot\t" + p.getName() + " using a "
          + g.getName());
          g.sound();
          //在main()函數中測試
          public class Test {
          public static void main(String[] args) {
          // TODO Auto-generated method stub
          Person p1 = new Person();
          Person p2 = new Person();
          p1.setName("XiaoWang");
          p2.setName("XiaoLi");
          Rifle r = new Rifle("rifle");
          Carbine c = new Carbine("carbine");
          // 將方法的調用和實現分離,已達到封裝的效果。
          p1.shoot(p2, r);
          p1.shoot(p2, c);

          posted on 2014-08-14 09:30 順其自然EVO 閱讀(189) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 华宁县| 武川县| 清河县| 叙永县| 宝应县| 九龙坡区| 石门县| 成安县| 集贤县| 屏南县| 富川| 中牟县| 筠连县| 阳信县| 镇平县| 梅河口市| 五大连池市| 东丽区| 湖南省| 淄博市| 乳山市| 顺义区| 大庆市| 墨脱县| 四会市| 河北省| 莒南县| 宣威市| 大同县| 韶山市| 鲜城| 乌兰察布市| 南川市| 区。| 稷山县| 逊克县| 额尔古纳市| 咸宁市| 竹北市| 华阴市| 武胜县|