• 课堂作业8多态


    结果截图:

    结果分析:前俩组定义自己的变量,使用自己方法,第三组用子类的方法变量,最后一个父类变量,子类方法,最后一个,是强制转化。

    Java语法:

    1.当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,到底调用哪个方法,由对象自己的“真实”类型所决定,这就是说:对象是子类型的,它就调用子类型的方法,是父类型的,它就调用父类型的方法。

    2.如果子类与父类有相同的字段,则子类中的字段会代替或隐藏父类的字段,子类方法中访问的是子类中的字段(而不是父类中的字段)。如果子类方法确实想访问父类中被隐藏的同名字段,可以用super关键字来访问它。

    如果子类被当作父类使用,则通过子类访问的字段是父类的

    模拟ATM机:

    源代码:

    package main;

    import java.io.BufferedReader;

    import java.io.InputStreamReader;

    import java.util.Scanner;

    class Account{

    String code = null; // 信用卡号

    String name = null; // 客户姓名

        String password = null; // 客户密码

        double money = 0.0; // 卡里金额

        String data=null;

        Account(String code, String name, String password, double money,String data) {

                     this.code = code;

                     this.name = name;

                     this.password = password;

                     this.money = money;

                     this.data=data;

               

         }

         public  String getCode() {

             return code;

         }

         public String getName() {

            return name;

         }

         public String getdata(){

          return data;

         }

         public void setName(String name) {

             this.name = name;

         }

         public String getPassword() {

             return password;

         }

         public void setPassword(String password) {

             this.password = password;

         }

         public double getMoney() {

          return money;

         }

         public void setdata(String data)

         {

           this.data=data;}

        public void setMoney(double money) {

     this.money = money;

         }

    }

    public class Test {

    public  static void main(String[] args){

    Account arr=new Account("20153182000","白悦","150702",100,"1995.11.27");

        int a;

            String b;

            int c;

        System.out.println("请选择语言:(1.中文 2.英文)");

    Scanner in =new Scanner(System.in);

    a=in.nextInt();

    System.out.println("请输入密码:");

    b=in.next();

            if (arr.getPassword().equals(b)){

            

                MyWelcome();

    c=in.nextInt();

    if(c==1)

    {

    System.out.println("请输入存款金额:");

    double d=in.nextInt();

    arr.setMoney(arr.getMoney()+d);

    System.out.println("您的余额为:"+arr.getMoney());

    }

    else if(c==2)

    {

    System.out.println("取款金额有:100,500,1000,1500,2000,5000,其他");

    System.out.println("请输入取款金额:");

    double e=in.nextDouble();

    arr.setMoney(arr.getMoney()-e);

    System.out.println("您的余额为:"+arr.getMoney());

    }

    else if(c==3)

    {

    System.out.println("请输入行号:");

    String f=in.next();

    if(f.equals(arr.getCode()))

    {

        System.out.println("请输入转账金额:");

        double g=in.nextDouble();

    arr.setMoney(arr.getMoney()+g);

    System.out.println("您的余额为:"+arr.getMoney());

        }

    }

    else if(c==4)

    {

    System.out.println("请输入原密码:");

    String h=in.next();

    if(arr.getPassword().equals(h))

    {

    System.out.println("请输入新密码:");

    String j=in.next();

    arr.setPassword(j);

    System.out.println("修改成功");

    }

    }

    else if(c==5)

    {

    System.out.println("您的余额为:"+arr.getMoney());

    }

    else System.out.println("无此功能");

    }

    }

    //欢迎界面

         public static void MyWelcome() {

             String str = "---------------------------------";

             System.out.print(str + " " + "欢迎使用模拟ATM程序. " + str + " ");

             System.out.print(" 1.>存款." + " " + " 2.>取款." + " " + " 3.>转账汇款." + " " + " 4.>修改密码."

                    + " " + " 5.>查询余额." + " ");

         }

         

    }

    结果截图:

  • 相关阅读:
    神奇的HTML5画图应用
    Eclipse REST 库使用
    在应用中使用Ext Loader
    新浪微博XSS攻击事件
    数字图像处理空间变换
    安装制作不用愁—Wise installation入门教程
    ExtJS 4中自定义Grid列标题的对齐方式
    页面的兼容性从认识<!DOCTYPE>开始
    ExtJS 4.1有什么值得期待?
    ExtJS应用架构设计(二)
  • 原文地址:https://www.cnblogs.com/baiyue/p/6079176.html
Copyright © 2020-2023  润新知