Java語言多態課後歸檔作業

來源:互聯網
上載者:User

標籤:bcf   類的變數   top   zju   ref   sam   歸檔   tca   gfs   

一.類型轉換

class Mammal{}class Dog extends Mammal {}class Cat extends Mammal{}public class TestCast{    public static void main(String args[])    {        Mammal m;        Dog d=new Dog();        Cat c=new Cat();        m=d;        //d=m;  出錯        d=(Dog)m;        //d=c;  出錯        //c=(Cat)m;    }}

總結:子類能賦給父類,改變父類的方法,但不改變父類中的變數。

二.類的繼承

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);    }}

 運行結果:

結論:子類能覆蓋父類,但是父類中的變數的值是不改變的,訪問父類中的變數時可用super來訪問,反之則一直被子類覆蓋。父類被覆蓋時,對父類中的變數進行操作時,父類中的變數改變,但輸出時仍輸出覆蓋父類的子類的變數。可以對父類操作前強制轉化為對子類的操作,即(child)Parent.myValue++,這時改變的將是覆蓋父類的子類

實驗任務一:

//ATM//LANGLANGBAI,2016.11.18import java.util.Scanner;public class ATM1 {   private String Account;   private String mima;   private String name;   private String Date;   private double YuE;   ATM1(String a,String b,String c,String d,double e){       Account = a;       mima = b;       name = c;       Date = d;       YuE = e;   }   void setYuE(double m)   {       YuE = m;   }   void setMima(String a){       mima = a;   }   String getName(){return name;}   String getMima(){return mima;}   double getYue(){return YuE;}   static void meno1(){       System.out.println("1、存款\n2、取款\n3、轉賬匯款\n4、修改密碼\n5、查詢餘額\n0、退出");   }     public static void main(String[] args) {       // TODO Auto-generated method stub       Scanner in1 = new Scanner(System.in);       Scanner in2 = new Scanner(System.in);       Scanner in3 = new Scanner(System.in);       Scanner in4 = new Scanner(System.in);       Scanner in5 = new Scanner(System.in);       ATM1[] a = new ATM1[20];       int num=1;       int j;       a[0] = new ATM1("12345678912","123456","白浪浪","2016\11\17",1000);        System.out.println("請插卡:\n插卡成功");        System.out.println("請輸入密碼:");        String mi = in1.next();        for(int i=0;i<num;i++)        {           if(mi .equals(a[i].getMima()) )              {              System.out.println("密碼 正確");               meno1();              double qian_num;               j=in2.nextInt();              while(j!=0)              {                if(j==1)                {                  System.out.println("請放入鈔票:");                  qian_num=in3.nextDouble();                  a[i].setYuE(a[i].getYue()+qian_num);                  System.out.println("存錢成功");                }                if(j==2)                {                    System.out.println("請輸入要進取款的金額:1、100 2、500  3、1000 4、1500 5、2000 6、5000 7、其他 8、退卡");                    int k;                    k=in2.nextInt();                    if(k==1)                       a[i].setYuE(a[i].getYue()-100);                    else if(k==2)                       a[i].setYuE(a[i].getYue()-500);                    else if(k==3)                       a[i].setYuE(a[i].getYue()-1000);                    else if(k==4)                       a[i].setYuE(a[i].getYue()-1500);                    else if(k==5)                       a[i].setYuE(a[i].getYue()-2000);                    else if(k==6)                       a[i].setYuE(a[i].getYue()-5000);                    else if(k==7)                    {qian_num = in4.nextDouble();                    a[i].setYuE(a[i].getYue()-qian_num);}                }                if(j==3)                {                    System.out.println("請輸入要轉賬的帳號 :");                    String a1;                    a1 = in5.next();                    System.out.println("請輸入要轉賬的金額 :");                    String a2;                    a2 = in5.next();                    System.out.println("轉賬成功! :");                }                if(j==4)                {                    System.out.println("請輸入修改後的密碼 :");                    String a1;                    a1 = in5.next();                    a[i].setMima(a1);                }                if(j==5)                {                    System.out.println("餘額  :"+a[i].getYue());                }                meno1();                j=in2.nextInt();                }              }           else if(i == num)              System.out.println("密碼錯誤,該卡鎖定。");        }        in1.close();        in2.close();        in3.close();        in4.close();        in5.close();    }}

 

運行:

 

Java語言多態課後歸檔作業

聯繫我們

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