1.编写如下程序。
1)创建Card类,添加静态成员变量:account。
2)添加成员函数:use(double money)。
3)创建子类deposit和withdraw,两个子类共享父类的account。
4)于两个字类添加构造函数:设定名称,添加成员函数:获取名称。
5)编写Card的use函数。如果是被deposit调用,account+money;如果是被withdraw调用,account-money。
6)进行测试。
(自行设计其他需要的变量、函数和函数参数。)

package test;
//1.编写如下程序。
//1)创建Card类,添加静态成员变量:account。
//2)添加成员函数:use(double money)。
//3)创建子类deposit和withdraw,两个子类共享父类的account。
//4)于两个子类添加构造函数:设定名称,添加成员函数:获取名称。
//5)编写Card的use函数。如果是被deposit调用,account+money;如果是被withdraw调用,account-money。
//6)进行测试。
//(自行设计其他需要的变量、函数和函数参数。)
public class Card {private static double account=1000;public  static double getAccount() {return account;}public void setAccount(double account) {this.account = account;}void use(double money){//父类的方法}public static void main(String[] args) {System.out.print("初始存款余额为:");System.out.println(getAccount());Card1 card1=new Card1();card1.deposit(500);System.out.print("存款后余额为:");System.out.println(getAccount());card1.withdraw(800);System.out.print("取款后余额为:");System.out.println(getAccount());}}//继承card类   重写use方法class Card1 extends Card{void use(double money){super.use(money);}public boolean withdraw(double money) {//取款的时候判断余额的大小再来确定能不能取款if(getAccount()>=money) {setAccount(getAccount()-money);return true;}return false;}public boolean deposit(double money) {setAccount(getAccount()+money);return true; }}

2.假想一个场景(任意,如:班级、形状、交通工具等),编写程序,要求如下:
1)创建父类,带2个构造函数,1个成员函数;
2)创建2个接口,各规定1个需实现的功能;
3)创建1个子类,继承父类,实现2个接口,重写(覆盖)父类的成员函数;
4)创建2个子类的对象,分别继承不同的构造函数;
5)2个子类对象分别调用2个接口所规定的功能;
6)任意子类对象调用子类本身及父类的成员函数;
7)编写测试程序验证上述每条要求。
程序要求:注释哪部分代码实现了上述要求。

package test;
import java.util.Scanner;
//2.假想一个场景(任意,如:班级、形状、交通工具等),编写程序,要求如下:
//1)创建父类,带2个构造函数,1个成员函数;
//2)创建2个接口,各规定1个需实现的功能;
//3)创建1个子类,继承父类,实现2个接口,重写(覆盖)父类的成员函数;
//4)创建2个子类的对象,分别继承不同的构造函数;
//5)2个子类对象分别调用2个接口所规定的功能;
//6)任意子类对象调用子类本身及父类的成员函数;
//7)编写测试程序验证上述每条要求。
//程序要求:注释哪部分代码实现了上述要求
public class Keep_7 {public static void main(String[] args) {//该程序主要是继承,实现接口,重写(覆盖)父类的方法的演练Keep_7 e=new Keep_7();HardDist h=new HardDist();e.write(h);e.read(h);h.rest();}private void write(inputDevice w) {w.read();}private void read(outputDevice r) {r.write();}
}
class spell{int x,y;spell(){}spell(int x,int y){this.x=x;this.y=y;}public void rest() {System.out.println("class rest");}
}interface inputDevice {public void read();} interface outputDevice {public void write();}class HardDist extends spell implements inputDevice,outputDevice{//继承父类实现两个接口public void rest() {System.out.println("class harddist");}public void write() {String s="hellojava";System.out.println("请将"+s+"的每一个字符都转化为大写:");String a;a=s.toUpperCase();System.out.println(""+a);}public void read() {String comment;System.out.print("请读入一个字符串:");Scanner scanner=new Scanner(System.in);comment=scanner.next();char[] arr= comment.toCharArray();System.out.print("倒序输出该字符串的每一个字符:");for(int i=comment.length()-1;i>=0;i--) {System.out.print(arr[i]+" ");}System.out.println();}
}
  1. 补完以下代码
    public class AgeOutOfBound extends Exception {
    //
    }
    public class AgeInput {
    //
    }
    public class Demo {
    public static void main(String[] args) {
    int age = 100;
    try {AgeInput.checkAge(age);}
    catch (AgeOutOfBound e) {
    System.out.println(“Are you really " + age + " years old?”);
    }
    }
    }

结果:
0< age < 200
当int age = 100, 输出fine…
当int age = 300, 输出
Sorry, age out of bound! Are you really 300 years old?

package test;
//结果:
//0< age < 200
//当int age = 100, 输出fine…
//当int age = 300, 输出Sorry, age out of bound! Are you really 300 years old?
class AgeOutOfBound extends Exception
{AgeOutOfBound(int age){if(age>0&&age<200) {System.out.println("fine!"); }else {System.out.print("Sorry, age out of bound!");
}
}
}
public class Keep_8 {int age;public static  class AgeInput{public static void checkAge(int age) throws AgeOutOfBound {if(age>0&&age<200){System.out.println("right!");}else {throw new AgeOutOfBound(age);}}}public static  void main(String[] args) {int age=150;try {AgeInput.checkAge(age);} catch(AgeOutOfBound e){ System.out.println("Are you really  " + age + " years old?");  }catch(Exception  e){ System.out.println(e);  }}
}

Java的继承多态的练习相关推荐

  1. java封装继承多态的理解_深入理解Java封装、继承、多态

    一:封装 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,常见的实现方式就是:getter.setter. 封装遵循了"开闭原则&qu ...

  2. java封装继承多态语法,GO语言中封装,继承,和多态

    ##封装 go中的封装和java的不太一样,在go里面是没有java中的class,不过可以把struct看成一个类,封装可以简单地看作对struct的封装,如下 type obj1 struct { ...

  3. 细品java封装继承多态

    目录: 1.封装 2.继承 3.多态 1.封装 封装的作用:封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没 ...

  4. Java的继承多态学习总结

    前言 了解继承 一般在设计继承时将共同的程序代码放在某个类中,然后告诉其他的类此类是他们的父类,当某一个类继承另一个类的时候,也就说子类继承自父类 继承例子 以动物为例设计继承关系(狮子.老虎.猫.狗 ...

  5. java封装继承多态的理解_用最傻瓜式的方法理解Java中的封装、继承和多态

    说到java中面向对象的封装.继承和多态,很多人会说这么简单这么入门的东西一直讲干嘛,虽然是基础,但是我们要明白,所有东西都是要在基础上发展的,没有基础就去学其他的,那么你肯定是很容易失败的,那么应该 ...

  6. JAVA封装|继承|多态

    一,继承:面向对象的三大继承之一 子类 | 派生类 : 继承父类的类 定义子类独有的内容 父类 | 超类 | 基类 : 被子类继承的类 所有子类的共性 1,Q&A 1.为什么要使用继承 ? 为 ...

  7. java封装 继承 多态_Java 封装、继承、多态

    Java 封装.继承.多态 1.封装: 封装的理解: 将类的某些信息隐藏在类的内部,不允许外部程序直接访问,并通过该类提供的方法来实现对隐藏信息的操作和访问.(简单的说就是隐藏对象的信息,留出访问的接 ...

  8. java抽象 继承 多态 接口

    **继承:**继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为 public class mp3 {private Str ...

  9. Java——封装继承多态

    封装 将方法和属性封装到一个对象中,对外提供方法用于改变该对象的属性值. public class Person { private String name; private Integer age; ...

最新文章

  1. oracle spm buffer get比较过程,Oracle 11g 新特性 -- SQL Plan Management 示例
  2. python子进程关闭fd_如果创建了multiprocessing.Pool,Python子进程wait()将失败
  3. gcc-5.4.0 static dwarf2 compile
  4. 学习笔记(59):Python实战编程-Graphics
  5. Iptables防火墙原理
  6. 10. Python面向对象
  7. 夫妻俩在互联网公司工作,年收入曝光,网友:这么高!
  8. IOS中的数据存储 简单总结
  9. 我是学渣,非计算机专业,当年我如何零基础自学web前端成功的!
  10. Matlab基本知识概况
  11. [代码]POJ 2409 Let it Bead
  12. MySQL(11)-----多表创建及描述表关系(多对多的分析和实现)
  13. 【深度首发】图森未来CEO陈默:我们并非在主机厂上游兜售技术,而是立足下游,做卡车运输业的智能服务商丨Xtecher 封面
  14. 葡萄柚能放冰箱保存吗 葡萄柚怎么保存时间长
  15. 【转摘】图像思维与意识观念的统一——读毕建勋《子非鱼》有感(初稿)[1]
  16. 基于FSR柔性薄膜压力传感器的智能鞋改装垫
  17. 2021年中国VR/AR行业市场投融资现状分析:VR/AR技术领域融资实现双增长[图]
  18. Corolado软件峰会关于Geronimo的介绍
  19. Bill Joy (zz.IS2120)
  20. linux服务器双网卡链路聚合,服务器多网卡绑定与交换机链路聚合对接探讨

热门文章

  1. oracle 修改默认日期格式_查看MySQL查询计划的方法和格式
  2. STM32配置一般过程(持续更新中)
  3. PC和手机怎么实现绝对居中?
  4. 修复.NET的HttpClient
  5. 51Nod-1046 A^B Mod C【快速模幂】
  6. uedit修改文件上传路劲,支持api文件接口
  7. App项目实战之路(二):API篇
  8. JavaScript停止冒泡和阻止浏览器默认行为
  9. 抽象工廠與工廠方法的區別
  10. 新装myeclispse8.6GA、@Override出错