JAVA課堂作業(七)

來源:互聯網
上載者:User

標籤:介面   i++   ntc   blog   構造   pre   .com   uga   pig   

一、動手動腦

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關鍵字來訪問它。
如果子類被當作父類使用,則通過子類訪問的欄位是父類的!

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

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("鴿子。");        }}

三.動手動腦

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()//介面    {        System.out.println("請選擇介面(1.中文2.英文):");        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("退卡成功!");                }            }        }                else{                    }        }        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課堂作業(七)

聯繫我們

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