博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA语法基础作业——动手动脑以及课后实验性问题 (七)
阅读量:6212 次
发布时间:2019-06-21

本文共 6538 字,大约阅读时间需要 21 分钟。

一、动手动脑

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
ans = new Vector
(); 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
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);    }    }

 

转载于:https://www.cnblogs.com/XiaoPiHaiEr/p/6079060.html

你可能感兴趣的文章
OSX BASH 漏洞修复指南
查看>>
golang -- channel使用
查看>>
从输入 URL 到页面加载完的过程中都发生了什么事情 —— 网络优化篇
查看>>
ntpdate 的问题
查看>>
Linux基础软件包编译安装
查看>>
限定某个目录禁止解析(apache)
查看>>
java 面向对象
查看>>
Spring Task使用笔记
查看>>
linux资料整理之进程管理
查看>>
Jenkins实践--Jenkins搭建和使用
查看>>
我的友情链接
查看>>
Linux的iptables(一)
查看>>
Cannot create a server using the selected type ...
查看>>
linux系统redhat中固定ip地址(使用静态ip)的配置方法
查看>>
数据的游戏:冰与火
查看>>
rss订阅开发
查看>>
SQL中的cast()函数介绍
查看>>
Kubernetes Deployment滚动更新场景分析
查看>>
eclipse中的.project 和 .classpath文件的具体作用
查看>>
JavaScript—内置对象
查看>>