标签:return java exti his 代码 int this resource 菜单
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);    }}
分析总结:
1.new的parent类的对象,所以在调用时调用的是parent的构造方法以及parent的value值
2.new的child的类的对象,所以在调用构造方法时调用child的构造方法以及child的value值
3.将子类的child赋值给了他的父类parent,在调用构造方法时也就是调用子类child的构造方法,但是在子类的构造方法时的value是子类child的value值,所以是子类child的构造方法加上value=200
4.parent的value值加一,但是parent仍是前面的child赋过值的,所以调用的仍然是child的构造方法,value也是child中的value所以仍是200
5.将parent赋给child类,所以parent也是child的一部分,所以调用时是调用子类的构造方法,并且之前value值加一了吗,所以输出201
6.如果子类与父类有相同的字段,则子类中的字段会代替或隐藏父类的字段,子类方法中访问的是子类中的字段(而不是父类中的字段)。如果子类方法确实想访问父类中被隐藏的同名字段,可以用super关键字来访问它。
2.用多态的方法模拟ATM操作流程。
import java.util.Scanner;
 public class showAtm {     @SuppressWarnings("resource")     public static void main(String[] args) {       ATM atm=new ATM();       showAtm s=new showAtm();       s.showFace();       atm.select();     }     //显示菜单方法   public static void showFace(){         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("********************");         System.out.println("请选择:");     } }class PersonalAccount{     String account;        String name;        String date;        String mima;        double yue;        PersonalAccount(String account,String name,String date,String mima,double yue){            this.account=account;            this.name=name;            this.date=date;            this.mima=mima;            this.yue=yue;        }        String Getaccount()        {            return account;        }        String Getname()        {            return name;        }        String Getdata()        {            return date;        }        String Getmima()        {            return mima;        }        double Getyue()        {            return yue;        }        void Setaccount(String account)        {            this.account=account;        }        void Setname(String name)        {            this.name=name;        }        void Setdate(String date)        {            this.date=date;        }        void Setmima(String mima)        {            this.mima=mima;        }        void Setyue(double yue)        {            this.yue=yue;        } } abstract class aATM{     public abstract void QuKuan();//取款     public abstract void CunKuan();//存款     public abstract void Zhuanzhang();//转账     public abstract void mima();//改密码     public abstract void yue();//余额 } class ATM extends aATM{     Scanner in = new Scanner(System.in);    PersonalAccount A=new PersonalAccount("1234567890123","han","20161115","970318",1000);    public void QuKuan(){        System.out.println("可取款金额:");        System.out.println("100元");        System.out.println("500元");        System.out.println("1000元");        System.out.println("1500元");        System.out.println("2000元");        System.out.println("5000元");        System.out.println("其他金额");        System.out.println("请输入你要取款的金额:");        double Q=in.nextDouble();        if(A.yue-Q<0)        {            System.out.println("余额不足!");        }        else        {        System.out.println("取款成功!");         A.yue=A.yue-Q;                 }    }    public void CunKuan(){        System.out.println("请输入存款金额:");        double Q1=in.nextDouble();        A.yue=A.yue+Q1;      }    public void Zhuanzhang(){        System.out.println("输入要转账的行号:");        String H=in.next();        System.out.println("你要转账的人的姓名是否为xxx?0:是,1:否");        int X=in.nextInt();        if(X==0)        {            System.out.println("请输入要转账的金额:");            double Z=in.nextDouble();            System.out.println("转账成功!");            A.yue=A.yue-Z;            System.out.println("您的余额为:"+A.yue);        }        if(X==1)        {            System.out.println("卡号错误!");        }    }    public void mima(){        System.out.println("请输入您要修改的卡号:");        String S=in.next();        if(A.Getaccount().equals(S))        {            System.out.println("请输入原密码:");            String S1=in.next();            if(A.Getmima().equals(S1))            {                System.out.println("请输入新密码:");                String S2=in.next();                A.Setmima(S2);                System.out.println("修改成功!");            }        }    }    public void yue()    {        System.out.println("余额为:"+A.yue);    } void select(){    boolean p=true;    while(p == true)    {    Scanner in = new Scanner(System.in);    System.out.println("请输入要执行的操作:");    int m = in.nextInt();    if(m == 1)    {        QuKuan();        continue;    }    if(m == 2)    {        CunKuan();        continue;             }    if(m == 3)    {        Zhuanzhang();        continue;    }    if(m == 4)    {        mima();        continue;    }         if(m == 5)      {        yue();        continue;      }    else      {        System.out.println("已退出系统!");        p = false;      }      in.close();     }  } }
 

3.
下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么?
m=d;
d=m;
d=(Dog)m;
d=c;
c=(Cat)m;
运行以下代码:
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;    }}
d是dog的对象,m是Mammal的对象,所以这相当于直接将父类对象给子类要用强制类型转换
c,d是同一级,同为子类,不能相互赋值。
标签:return java exti his 代码 int this resource 菜单
原文地址:http://www.cnblogs.com/muxiaozhou/p/6079458.html