一、动手动脑

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

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

JAVA语法基础作业——动手动脑以及课后实验性问题 (七)相关推荐

  1. JAVA语法基础作业——动手动脑以及课后实验性问题(一)

    一.枚举类型 public class EnumTest {  public static void main(String[] args) {    Size s=Size.SMALL;    Si ...

  2. JAVA语法基础作业

    1.仔细阅读示例: EnumTest.java,运行它,分析运行结果? 答:第一个false说明s和t没有引用同一个对象.第二个false说明s不是原始数据类型.Size.valueOf可以是u得到S ...

  3. Java语法基础----课后实践作业

    1.Enumtest.Java 代码: public class EnumTest {public static void main(String[] args) {Size s=Size.SMALL ...

  4. 给Java初学者福利——Java语法基础

    Java代码基本格式 Java中所有程序代码都必须存在于一个类中,用class关键字定义类,在class之前可以有一些修饰符.格式如下: 修饰符 class 类名 { 程序代码 } 注: 1.Java ...

  5. 【Java】Java学习笔记(2)——Java面向对象基础作业函数题

    本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...

  6. 【JAVA SE】第二章 Java语法基础、数据类型、基本类型的字面值、基本类型的类型转换和运算规则

    第二章 Java语法基础.数据类型.基本类型的字面值.基本类型的类型转换.运算规则和标识符命名风格 文章目录 第二章 Java语法基础.数据类型.基本类型的字面值.基本类型的类型转换.运算规则和标识符 ...

  7. JAVA语法基础 动手动脑及课后作业

    动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] ar ...

  8. JAVA作业 02 JAVA语法基础

    一. 思考问题一:枚举类型 public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Si ...

  9. 动手动脑及课后实践3

    1.    动手动脑1: (一)运行结果: 分析原因:在Java中,内容相同的字串常量("Hello")只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象. 编译器 ...

  10. 第二次作业动手动脑的解答

    第一个动手动脑让我看老师发 的文件,EnumTest.java.猜它 的运行结果. 我猜嘛,s和 t肯定引用的不同对象,老师上课也讲过是吧. falsefalsetrueSMALLMEDIUMLARG ...

最新文章

  1. C# 多线程 参数传递
  2. 计算机科学软件工程专业大学排名,2020软件工程专业大学排名及录取分数汇总(2021理科生参考)...
  3. linux-telnet服务配置
  4. 关于正点原子STM32的MDK例程移植到IAR中遇到的错误解决方法 __use_no_semihosting
  5. python组成不重复的三位数是多少_超星Python 练习实例1-组成多少个互不相同且无重复的三位数字...
  6. Linux进程分配内存的两种方式--brk() 和mmap()
  7. Angular里ngModel双向绑定的一个使用例子
  8. mysql 服务器初始面膜_安全初始化MySql服务器
  9. python的print怎么输出utf-8的编码_原创反转精度算法:小数的终极编码
  10. python资源分配算法_DRL based Resource Allocation Framework
  11. 江苏省计算机二级C操作题汇编
  12. 【无标题】IDM + 油猴 + 百度云
  13. PHP解析抖音无水印视频播放地址原理
  14. 【混合编程】c++中调用python脚本
  15. QT正则表达式介绍与使用
  16. 缓存学习总结4(分布式缓存)
  17. 删除电脑中删不掉的文件或文件夹
  18. 二维小波变换_小波变换完美通俗讲解系列之 (一)
  19. PySide2学习总结(十二)打开文件对话框--FileDialog
  20. 如何将 Visual Paradigm 桌面客户端连接到不同的 VP Online 存储库丨使用教程

热门文章

  1. 项目总结,要做哪些内容
  2. 别人改汝代码,应该怎么办
  3. Python pip安装报错及解决办法:is not a supported wheel on this platform
  4. 管理感悟:测试的目的是什么
  5. php v9 用于静态页查询登陆状态以及用户信息的ajax接口,phpcms V9如何判断用户是否登录以及登陆后的标签写法问题 - 小众知识...
  6. zk临时节点失效时间_dubbo学习(六)服务发布dubbo服务在zk的创建、订阅
  7. java ajax 返回乱码,解决使用$.ajax的时候得到返回乱码
  8. Yii2给数据库表添加字段后对应模型无法识别到该属性的原因和解决办法
  9. SQLServer删除登录记录用户名和密码
  10. VMware Server1.03下载地址及序列号