综合案例(用户博客管理系统):

Team8(抽象类)
定义一个抽象的"Role"类 有姓名 年龄 性别等成员变量 
    1. 要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有) 
    再通过GetXXX()和SetXXX()方法对各变量进行读写。具有一个抽象的play()方法 
    该方法不返回任何值 同时至少定义两个构造方法。Role类中要体现出this的几种用法。
    2. 从Role类派生出一个"Employee"类 该类具有Role类的所有成员 
    构造方法除外 并扩展 salary成员变量 同时增加一个静态成员变量“职工编号 ID ”。
    同样要有至少两个构造方法 要体现出this和super的几种用法 
    还要求覆盖play()方法 并提供一个final sing()方法。 
    3. "Manager"类继承"Employee"类 有一个final成员变量"vehicle" 
    4. 在main()方法中制造Manager和Employee对象,并测试这些对象的方法

package yxl;abstract class Role {private String name;private int age;private String sex;public Role(String name, int age, String sex) {this.name = name;this.age = age;this.sex = sex;}public Role(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public abstract void play();
}class Employee extends Role {private double salary;private static String ID;public Employee() {super("伊卡",20,"男");System.out.println("无参构造");}public Employee(String name,int age,String sex,double salary) {super(name,age,sex);this.salary = salary;}public void play() {System.out.println(super.getName()+"在快乐的玩着奥德赛");}public final void sing() {System.out.println(super.getName()+"吃着火锅唱着歌");}}class Manager extends Employee {public static final String vehicle = "Benz";
}public class Control {public static void main(String[] args) {Role role = new Employee();role.play();Employee employee = (Employee) role;employee.sing();Manager manager = new Manager();System.out.println(Manager.vehicle);}
}

品尝饮料
1、建立一个Java抽象类Drink 应当 a、声明一个抽象方法taste() 该方法负责输出饮料的味道 b、声明int型常量来代表不同的饮料类型 咖啡、啤酒、牛奶 如 c、声明静态工厂方法getDrink(int drinkType) 根据传入的参数创建不同的饮料对象 并返回该对象 建议使用switch语句。该方法要求声明DrinkNotFoundException 当没有相对应的饮料类型时 抛出该异常。
2、建立Drink的具体子类 a、分别建立Drink的子类 Coffee 代表咖啡 Beer 代表啤酒 Milk 代表牛奶 ; b、实现taste()方法 要求在控制台打印各自的味道特征。
3、建立异常类DrinkNotFoundException a、继承Exception b、在Drink的 方 法getDrink(int drinkType)中 声 明 引 发DrinkNotFoundException异常 当传入的参数没有相对应的饮料类型时 抛出异常。 c、在使用getDrink方法的类中捕捉该异常。
4、建立Test测试类 测试以上内容的正确性 a、编写main方法 通过命令行传参的方式传入某种饮料的类型。 b、在main方法中 调用Drink类的getDrink方法 获得相应的饮料对象。注意捕获DrinkNotFoundException。 c、然后调用该饮料对象的taste()方法 输出该饮料的味道。
5、编译程序 并运行。
注意事项 1、仔细审题 把题目要求理解准确 2、请注意多态性的运用 3、请注意代码的书写、命名符合规范 应有适当的注释

package yxl;
import java.util.Scanner;
abstract class Drink {abstract void taste();int coffee,beer,milk;static int getDrink(int drinkType) throws DrinkNotFoundException{switch(drinkType) {case 1: System.out.print("coffee:");Coffee c=new Coffee();c.taste();break;case 2: System.out.print("beer:");Beer b=new Beer();b.taste();break;case 3: System.out.print("milk:");Milk m=new Milk();m.taste();break;default: throw new DrinkNotFoundException();}}class Fun extends Drink{void taste() {}}class DrinkNotFoundException extends Exception{}class Coffee{void taste() {System.out.println("haihaihai");}public void getDrink(int s) {}}class Beer{void taste() {System.out.println("not bad");}}class Milk{void taste() {System.out.println("how sweet you are!");}}public static void main(String[]args) {Coffee c=new Coffee();Beer b=new Beer();Milk m=new Milk();Fun f=new Fun();Scanner sc=new Scanner(System.in);try {int s=sc.nextInt();f.getDrink(s);}catch(Exception e) {System.out.println("mistake");}}}

关于抽象类的实验(java 内部类、多态等练习)相关推荐

  1. Java查漏补缺(08)关键字:static、单例设计模式、理解main方法、类的成员之四:代码块、final关键字、抽象类、接口、内部类、枚举类、注解、包装类

    Java查漏补缺(08)关键字:static.单例设计模式.理解main方法.类的成员之四:代码块.final关键字.抽象类.接口.内部类.枚举类.注解.包装类 本章专题与脉络 1. 关键字:stat ...

  2. Java自学笔记——Java面向对象——04.抽象类、接口、内部类

    Java 面向对象各节 Java自学笔记--Java面向对象--01.回顾方法 Java自学笔记--Java面向对象--02.构造器.类和对象 Java自学笔记--Java面向对象--03.封装.继承 ...

  3. java实验八 内部类,匿名类

    实验八 内部类,匿名类 实验内容: (一)内部类.匿名类(必做) 1.三大体育媒体互联网平台,由于资源独占,有些类别的运动只能在某个平台上进行独播: 2.足球赛事只能在平台A上进行独播,篮球赛事只能在 ...

  4. [转载] java 内部类与闭包

    参考链接: Java本地内部类 内部类 首先,让我们看看什么是内部类(Java 内部类,成员类,局部类,匿名类等): 根据内部类的位置不同,可将内部类分为 成员内部类局部内部类 class C{ // ...

  5. Java内部类的四种分类以及作用

    本文转载自:Java内部类的四种分类以及作用 一.内部类内容解析 1. 内部类的区分 内部类分别有成员内部类.局部内部类.匿名内部类.静态内部类,接下来将分别介绍. 2. 成员内部类 就是位于外部类成 ...

  6. 笔记整理3----Java语言高级(三)11 综合练习+12 面向对象-static变量 与 代码块+13 面向对象-继承与抽象类+14 面向对象-接口与多态+15 面向对象-包修饰符

    11 综合练习+12 面向对象-static变量 与 代码块+13 面向对象-继承与抽象类+14 面向对象-接口与多态+15 面向对象-包&修饰符 第11天 综合练习 今日内容介绍 综合练习 ...

  7. 看到如此详细的Java内部类,我泪目了

    Java内部类 介绍 定义 成员内部类 语法格式 使用说明 代码示例 局部内部类 语法格式 使用说明 代码示例 匿名内部类 语法格式 使用说明 代码示例 静态内部类 语法格式 使用说明 代码示例 介绍 ...

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

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

  9. java内部格式_详解java内部类的访问格式和规则

    详解java内部类的访问格式和规则 1.内部类的定义 定义一个类来描述事物,但是这个事物其中可能还有事物,这时候在类中再定义类来描述. 2.内部类访问规则 ①内部类可以直接访问外部类中的成员,包括私有 ...

  10. 猫、狗与Java的多态

    多态(Polymorphism)按字面的意思就是"多种状态".在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述--多态性是允许你 ...

最新文章

  1. 慕课网_《微信授权登录》学习总结
  2. 【Trie】【费用流】管道监控(loj 3026)
  3. 【离散数学中的数据结构与算法】二 欧几里得算法与裴蜀等式
  4. 生成指定序列的前一字典序序列(洛谷P2525题题解,C++语言描述)
  5. java取余数的函数_左神算法基础:哈希函数和哈希表
  6. matlab朴素贝叶斯手写数字识别_从“手写数字识别”学习分类任务
  7. everything服务器网页设置,Everything HTTP 服务器设置
  8. Err CLSU-00104: additional error information: need ha priv
  9. Mysql表的约束设计和关联关系设计
  10. 博思得标签打印机驱动_博思得打印机驱动
  11. 苹果按键强制恢复出厂_【数码】苹果手机忘了解锁密码不要慌,你可以这样做!...
  12. linux中搭建邮件服务器
  13. java毕业生设计宠物医院管理计算机源码+系统+mysql+调试部署+lw
  14. 工控机的日常维护方法及步骤
  15. 备份 mysql数据
  16. PHP:【商城后台管理系统】部署角色管理,角色添加,菜单权限,删除角色功能
  17. centos7 安装mysql5.7.37 实操说明
  18. ajax 泛微oa表单js_接口调用示例
  19. 又是一年高考季,转眼间已经过去12年了
  20. 安卓银行木马新增“keylogger”功能,攻击能力倍增

热门文章

  1. windows系统nginx重启发生异常
  2. 我的世界java播放背景音乐_我的世界BOSS音乐mod
  3. vue使用element-ui 实现多套自定义主题快速切换
  4. 大数据发展前沿 期末总结复习
  5. 斐讯dc1服务器什么时候修复,[4月1日更新!!]斐讯DC1插座自制固件接入ha
  6. Tensorflow2-卷积神经网络实现图片分类
  7. SpringBoot+Vue+Mybatis-plus 博客(一):完成博客后台前端登录页面、后端登录接口
  8. Acwing:我在哪(二分+字符串哈希 Python)
  9. Rockchip RK3588 kernel dts解析之MMC
  10. 【Java中继承总结与练习 】