结果截图:
结果分析:前俩组定义自己的变量,使用自己方法,第三组用子类的方法变量,最后一个父类变量,子类方法,最后一个,是强制转化。
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.>查询余额." + " ");
}
}
结果截图: