zoukankan      html  css  js  c++  java
  • 08 多态课后作业

    知识点一:类型转换

    源代码:

    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

    源代码:

    //ATM

    //Han Yang 20161115

    import java.util.Scanner;

    public class ATM {

       private String Account;

       private String mima;

       private String name;

       private String Date;

       private double YuE;

       ATM(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、存款 2、取款 3、转账汇款 4、修改密码 5、查询余额 0、退出");

       }

      

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

           ATM[] a = new ATM[20];

           int num=1;

           int j;

           a[0] = new ATM("1111111111","123456","hanhan","20161115",1000);

            System.out.println("请插卡:");

            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("请放入少于100张钞票:");

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

        }

    }

    程序截图:

     

     

     

  • 相关阅读:
    Analysis Services features supported by SQL Server editions
    Azure DevOps to Azure AppServices
    Power BI For Competition
    Win10开机“提示语音”以及”随机播放音乐”
    Azure DevOps
    Allow Only Ajax Requests For An Action In ASP.NET Core
    Mobile CI/CD 101
    Configure SSL for SharePoint 2013
    AWS Step Function Serverless Applications
    Cordova Upload Images using File Transfer Plugin and .Net core WebAPI
  • 原文地址:https://www.cnblogs.com/shouhutian/p/6078932.html
Copyright © 2011-2022 走看看