qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          一個例子理解java面向?qū)ο蟮臋C制

          //定義Gun類
          public abstract class Gun {
          protected String name;
          // 帶參數(shù)的構(gòu)造方法,特殊的方法,名字必須與類名相同
          public Gun() {
          public Gun(String name) {
          this.name = name;
          // 構(gòu)造抽象方法,并在子類中繼承和定義。
          abstract void sound();
          public String getName() {
          return name;
          public void setName(String name) {
          this.name = name;
          //Carbine繼承自Gun
          public class Carbine extends Gun {
          //帶參數(shù)的構(gòu)造方法,特殊的方法,名字必須與類名相同
          public Carbine(String name) {
          this.name = name;
          //Gun類下不同的子類擁有同名的sound()方法,但是內(nèi)容不同,在調(diào)用sound()方法時會根據(jù)具體的Gun而自動調(diào)用相應(yīng)的方法。
          //這用到了Java的多態(tài)性。
          void sound() http://www.huiyi8.com/jiaoben/
          // TODO Auto-generated method stub
          System.out.println("DaDaDa!"); javascript特效
          //Rifle繼承自Gun
          public class Rifle extends Gun {
          //帶參數(shù)的構(gòu)造方法,是特殊的方法,名字必須與類名相同
          public Rifle(String name) {
          this.name = name;
          //Gun類下不同的子類擁有同名的sound()方法,但是內(nèi)容不同,在調(diào)用sound()方法時會根據(jù)具體的Gun而自動調(diào)用相應(yīng)的方法。
          //這用到了Java的多態(tài)性。
          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;
          // 體現(xiàn)多態(tài)性。
          public void shoot(Person p, Gun g) {
          System.out.println(this.name + " shoot\t" + p.getName() + " using a "
          + g.getName());
          g.sound();
          //在main()函數(shù)中測試
          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");
          // 將方法的調(diào)用和實現(xiàn)分離,已達到封裝的效果。
          p1.shoot(p2, r);
          p1.shoot(p2, c);

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

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

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 岳阳县| 安西县| 鹤岗市| 麻城市| 涟水县| 平舆县| 诸暨市| 崇州市| 平远县| 合阳县| 南靖县| 宁陕县| 衡阳县| 永泰县| 蒙山县| 青铜峡市| 勃利县| 柘城县| 武隆县| 贡山| 大城县| 班玛县| 巫溪县| 廊坊市| 庄河市| 五家渠市| 嘉峪关市| 禄丰县| 汉阴县| 山西省| 嘉黎县| 宿松县| 阿拉尔市| 湖州市| 永平县| 平安县| 科尔| 讷河市| 桐城市| 罗山县| 吉木萨尔县|