java動手動腦08

來源:互聯網
上載者:User

標籤:abs   _id   jin   img   成功   parse   實驗   技術分享   roman   

一.動手動腦

1)原始碼:

 
  public class ParentChildTest {      public static void main(String[] args) {          Parent parent=new Parent();          parent.printValue();          Child child=new Child();          child.printValue();                    parent=child;          parent.printValue();                  parent.myValue++;         parent.printValue();                  ((Child)parent).myValue++;         parent.printValue();              } }  class Parent{
public int myValue=100; public void printValue() { System.out.println("Parent.printValue(),myValue="+myValue); } } class Child extends Parent{ public int myValue=200; public void printValue() {
System.out.println("Child.printValue(),myValue="+myValue); } }

2)實驗:

3)結果分析:

當子類與父類擁有一樣的方法,並且讓一個父類變數引用一個子類對象時,到底調用哪個方法,由對象自己的“真實”類型所決定。

這就是說:對象是子類型的,它就調用子類型的方法,是父類型的,它就調用父類型的方法。

如果子類與父類有相同的欄位,則子類中的欄位會代替或隱藏父類的欄位,子類方法中訪問的是子類中的欄位(而不是父類中的欄位)。如果子類方法確實想訪問父類中被隱藏的同名欄位,可以用super關鍵字來訪問它。
如果子類被當作父類使用,則通過子類訪問的欄位是父類的!

 

二.動手動腦 動物園(使用介面代替抽象基類)

1)原始碼

  import java.util.Vector;  public class zoo4 {      public static void main(String[] args) {           Feeder f = new Feeder("小李");           Vector<Animal> ans = new Vector<Animal>();                       ans.add(new Lion());                    for (int i = 0; i < 10; i++) {              ans.add(new Monkey());          }          for (int i = 0; i < 5; i++) {               ans.add(new Pigeon());
}
f.feedAnimals(ans); } } class Feeder {//飼養員類 public String name; Feeder(String name) { this.name = name; } public void feedAnimals(Vector<Animal> ans) { for (Animal an : ans) { an.eat(); } } } interface Animal {//動物基類 public abstract void eat(); } class Lion implements Animal { public void eat() { System.out.println("獅子"); }}class Monkey implements Animal { public void eat() { System.out.println("猴子"); } } class Pigeon implements Animal { public void eat() { System.out.println("鴿子"); } }

 

 

三.動手動腦

1)原始碼:

  //1115    import java.util.*;  public class Ex1115 {      public static void main(String[] args) {           Account a = new Account("11111111111","dsdf","20161115","256398",23.6);           a.jiemian();      }   }    class Account {      private static final String JOptionPane = null;      private  static String Id;      private static String name;      private static String date;     private static String mima;     private static double extra;           Account(String i,String n,String d,String m,double e)//建構函式     {       Id=i;          name=n;         date=d;          mima=m;          extra=e;      }            public void set_Id(String i){          Id=i;      }      public void set_name(String n){          name=n;;     }      public void set_date(String d){          date=d;      }      public void set_mima(String m){          mima=m;      }      public void set_extra(double e){          extra=e;      }            public String get_Id(){          return Id;      }      public String get_name(){          return name;      }      public String get_date(){          return date;      }      public String get_mima(){          return mima;      }      public double get_extra(){          return extra;     }                 public static void jiemian()//介面      {                Scanner sc=new Scanner(System.in);          String num1=sc.nextLine();          int num11=Integer.parseInt(num1);                   if(num11==1){                            Scanner sc1=new Scanner(System.in);              int num=Integer.parseInt(sc1.nextLine());                while(true)              {                      System.out.println("請選擇要進行的操作:");                      System.out.println("1.取款");                      System.out.println("2.存款");                      System.out.println("3.轉賬");                      System.out.println("4.修改密碼");                     System.out.println("5.查詢餘額");                     System.out.println("6.退卡");                                      if(num==1)                   qukuan();                else if(num==2)                      cunkuan();                else if(num==3)                    zhuan();                 else if(num==4)                    xiugai();                else if(num==5)                      chaxun();                 else if(num==6){                     System.out.println("退卡成功!");                 }             }         }         }          public static void cunkuan()//存款     {         System.out.println("請輸入存款金額:");        Scanner sc = new Scanner(System.in);         int jine = Integer.parseInt(sc.nextLine());                 extra += jine;        System.out.println("您現在的金額為:" + extra);    }          public static void qukuan()//取款     {         System.out.println("請輸入取款金額");         String output="";        output += "100  "                 + "\n500 "                + "\n1000  "                 + "\n1500 "                 + "\n2000 "                 + "\n5000  "                 + "\n其他金額(請輸入0)"                 + "\n返回操作(請輸入-1) "                 + "\n退卡(請輸入-2)";        System.out.println(output);          Scanner sc=new Scanner(System.in);         int num=Integer.parseInt(sc.nextLine());                 switch(num)         {         case 100:{                   }             extra -= 100;break;         case 500:             extra -= 500;break;         case 1000:             extra -= 1000;break;         case 1500:            extra -= 1500;break;        case 2000:             extra -= 2000;break;        case 5000:             extra -= 5000;break;         case 0:         {            System.out.println("請輸入取款金額:");             Scanner sc1=new Scanner(System.in);             int jine=Integer.parseInt(sc1.nextLine());            extra -= jine;            sc1.close();            break;        }        case -1:             System.out.println("已返回操作介面");break;         case -2:             System.out.println("退卡成功!");break;         }    }          public static void zhuan()//轉賬匯款     {         System.out.println("請輸入轉賬行號:");        Scanner sc = new Scanner(System.in);         String hanghao = sc.nextLine();                  Scanner sc1 = new Scanner(System.in);         int jine = Integer.parseInt(sc1.nextLine());                 extra -= jine;                 System.out.println("轉賬成功!");     }         public static void xiugai()//修改密碼    {        System.out.println("請輸入要修改的密碼:");         Scanner sc1 = new Scanner(System.in);        String mi = sc1.nextLine();         mima = mi;     }          public static void chaxun()//查詢餘額    {        System.out.println("餘額為:"+extra);     }    }

 

java動手動腦08

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.