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.

import java.util.Scanner;

class Account{
String account;
String name;
String date;
int key;
double money; public Account(String a,String b,String c,int d,double e)
{
account=a;
name=b;
date=c;
key=d;
money=e;
} } public class Option {
public static void main(String[] args) {
Account aa=new Account("622888040311","zxw","2016.11.15",123456,1000);
int a,b;
System.out.println("请选择语言:1.中文 2.英文");
Scanner in =new Scanner(System.in);
a=in.nextInt();
System.out.println("请输入密码:");
Scanner in1 =new Scanner(System.in);
b=in1.nextInt();
if(b==aa.key){
while(true){ int choose;
System.out.println("请选择操作:1.存款 2.取款 3.转账汇款 4.修改密码 5.查询余额");
Scanner in2 =new Scanner(System.in);
choose=in2.nextInt();
if(choose==1){
System.out.println("请输入存款金额:");
Scanner in3 =new Scanner(System.in);
double cun=in3.nextInt();
aa.money=aa.money+cun;
continue;
}
else if(choose==2){
System.out.println("请输入取款金额:");
Scanner in4=new Scanner(System.in);
double qu=in4.nextDouble();
if(aa.money<qu){
System.out.println("卡内余额不足");
}
aa.money=aa.money-qu;
continue;
}
else if(choose==3){
System.out.println("请输入要转账的卡号:");
Scanner in6=new Scanner(System.in);
String hang=in6.nextLine();
if(hang.equals(aa.account)){
System.out.println("请输入转账金额:");
Scanner in5=new Scanner(System.in);
double zhuan=in5.nextDouble();
aa.money=aa.money-zhuan;
}
}
else if(choose==4){
System.out.println("请输入原密码:");
Scanner in7=new Scanner(System.in);
int mi=in7.nextInt();
if(mi==aa.key){
System.out.println("请输入新密码:");
Scanner in8=new Scanner(System.in);
int mi2=in8.nextInt();
aa.key=mi2;
}
}
else if(choose==5){
System.out.println("现在的余额为:"+aa.money);
} }
}
else
System.out.println("密码错误,该卡已被锁定,无法操作"); } }

java-08多态与异常处理的更多相关文章

  1. java练习——多态与异常处理

    1.   上面的程序运行结果是什么? 2.   你如何解释会得到这样的输出? parent = chlid; 所以child中的方法被赋予parent,所以用child方法输出了child的成员变量: ...

  2. java的多态以及重载,重写,前期绑定,后期绑定

    多态的定义: 一个类实例的相同方法在不同情形有不同表现形式.多态机制使具有不同内部结构的对象可以共享相同的外部接口.这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通 ...

  3. 关于java中多态的理解

    java三大特性:封装,继承,多态. 多态是java的非常重要的一个特性: 那么问题来了:什么是多态呢? 定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行 ...

  4. 深入Java核心 Java中多态的实现机制(1)

    在疯狂java中,多态是这样解释的: 多态:相同类型的变量,调用同一个方法时,呈现出多中不同的行为特征, 这就是多态. 加上下面的解释:(多态四小类:强制的,重载的,参数的和包含的) 同时, 还用人这 ...

  5. 个人对Java中多态的一些简单理解

    什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一 ...

  6. Java中多态的一些简单理解

    什么是多态 .面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. .多态的定义:指允许不同类的对象对同一消息做出响应.即 ...

  7. Java JVM 多态(动态绑定)

    Java JVM 多态(动态绑定) @author ixenos 摘要:绑定.动态绑定实现多态.多态的缺陷.纯继承与扩展接口.向下转型与RTTI 绑定 将一个方法的调用和一个方法的主体关联起来,称作( ...

  8. java基础系列--Exception异常处理

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7191280.html 1.概述 Java代码中的异常处理是非常重要的一环,从代码中可以看到 ...

  9. Java:多态乃幸福本源

    01 多态是什么 在我刻板的印象里,西游记里的那段孙悟空和二郎神的精彩对战就能很好的解释“多态”这个词:一个孙悟空,能七十二变:一个二郎神,也能七十二变:他们都可以变成不同的形态,但只需要悄悄地喊一声 ...

  10. java中的try-catch-finally异常处理(学习笔记)

    一.异常概述 异常:Exception,是在运行发生的不正常情况. 原始异常处理: if(条件) { 处理办法1 处理办法2 处理办法3 } if(条件) { 处理办法4 处理办法5 处理办法6 } ...

随机推荐

  1. PHP基本语法,类基本函数

    C#中函数四要素返回类型,函数名,参数列表,函数体pulic void show()php函数定义1.最简单的定义function show(){echo "hello"}show ...

  2. 反射,hashlib模块,正则匹配,冒泡,选择,插入排序

    一.反射(自省) 首先通过一个例子来看一下本文中可能用到的对象和相关概念. import sys # 模块,sys指向这个模块对象import inspectdef foo(): pass # 函数, ...

  3. 如何安装/更新ruby,安装cocoapods,为开发做好准备!(2016年12月07日更新内容)

    一:首先来说一下如何安装/更新ruby: 一般情况下,即使是新买的Mac电脑也会安装有ruby,可以在终端中键入一下命令查看ruby版本 ruby -v 正常情况下下面会打印出ruby的版本信息,如果 ...

  4. Linux Shell基础 多个命令中的分号(;)、与(&&) 、 或(||)

    概述 在 Bash 中,如果需要让多条命令按顺序执行,则有这样方法,如表 1 所示. 多命令执行符 格 式 作 用 : 命令1 ; 命令2 多条命令顺序执行,命令之间没有任何逻辑关系 &&am ...

  5. 【HackerRank】Missing Numbers

    Numeros, The Artist, had two lists A and B, such that, B was a permutation of A. Numeros was very pr ...

  6. easy_install

    一 setuptools 和easy_install setuptools:setuptools 是一组由PEAK(Python Enterprise Application Kit)开发的 Pyth ...

  7. 单周期CPU设计

    终于有点时间了,恰好多周期的设计也已经完成,其实只想写写多周期的,无奈单周期补上才好,哈哈哈~ —————+—————黄金分割线—————+————— 首先要理解什么叫单周期CPU(与后面多周期CPU ...

  8. [RK3288][Android6.0] 调试笔记 --- user版本默认显示开发者选项【转】

    本文转载自:https://blog.csdn.net/kris_fei/article/details/70157137 Platform: ROCKCHIPOS: Android 6.0Kerne ...

  9. Centos6.5使用yum安装软件的时候 Another app is currently holding the yum lock; waiting for it to exit...

    Loaded plugins: fastestmirror, refresh-packagekit, security Existing . Another app is currently hold ...

  10. 【bzoj1318】[Spoj744] Longest Permutation(乱搞)

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=1318 这道题的大意是要求一个长度为len,并包含1~len所有数,并使len最大的子区 ...