1抽象类练习题day08答案_第1页
1抽象类练习题day08答案_第2页
1抽象类练习题day08答案_第3页
1抽象类练习题day08答案_第4页
1抽象类练习题day08答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、day08 抽象类课后练习基础题目第一题:概念题1 请写出抽象 的定义格式2 请写出抽象类的定义格式?并举例定义带有抽象 的抽象类3 请写出抽象类的使用步骤第二题:语法练习语法点:继承,抽象类按步骤编写代码,效果 :编写步骤:1. 定义抽象类A,抽象类B继承A,普通类C继承B2. A类中,定义成员变量numa,赋值为10,抽象showA 。3. B类中,定义成员变量numb,赋值为20,抽象showB 。4. C类中,定义成员变量numc,赋值为30,重写showA ,打印numa,重写showB ,打印numb,定义showC ,打印numc。5. 测试类中,创建C对象,调用showA ,s

2、howB ,showC 。参考 :1.定义一个子类继承抽象类2. 重写抽象3. 创建子类对象abstract class 类名 / 代码public abstract class Animal public abstract void run();修饰符 abstract 返回值类型 名 (参数列表); public abstract void run();public class Test4 public static void main(String args) / 创建C对象C c = new C();/ 调用c 中c.showA();c.showB();c.showC();abstra

3、ct class A int numa = 10;public abstract void showA();abstract class B extends A int numb = 20;public abstract void showB();class C extends B int numc = 30;Overridepublic void showA() System.out.println(A类中numa: + numa);Overridepublic void showB() System.out.println(B类中numb: + numb);public void show

4、C() System.out.println(C类中numc: + numc);扩展题目第三题:需求实现语法点:封装,继承,抽象 ,抽象类请使用代码描述:2岁的红色的公鸡会吃饭(啄米)和打鸣1岁的黑色的鸭子会吃饭(吃鱼)和游泳按步骤编写代码,效果 :开发提示:把公鸡和鸭子的共性内容( 属性,颜色属性,吃饭 )抽取到家禽类中家禽类中定义抽象的吃饭公鸡继承家禽,重写吃饭 ,添加特有 打鸣鸭子继承家禽,重写吃饭 ,添加特有 游泳参考 :public class Test6 public static void main(String args) / 创建公鸡对象Cock c = new Cock(2

5、, 红色);/ 调用公鸡的吃饭和打鸣c.eat();c.call();/ 创建鸭子类Duck d = new Duck(1, 黑色);/ 调用鸭子的吃饭和游泳d.eat();d.swim ();abstract class Poultry / 属性,颜色属性,吃饭private int age; private String color;public abstract void eat();public Poultry() public Poultry(int age, String color) this.age = age;this.color = color;public int get

6、Age() return age;public void setAge(int age) this.age = age;public String getColor() return color;public void setColor(String color) this.color = color;/ 公鸡类class Cock extends Poultry public Cock() public Cock(int age, String color) super(age, color);/ 重写吃饭public void eat() System.out.println(getAge

7、() + 岁的 + getColor() + 的公鸡在啄米);/ 特有 打鸣public void call() System.out.println(getAge() + 岁的 + getColor() + 的公鸡在打鸣);/ 鸭子类class Duck extends Poultry public Duck() public Duck(int age, String color) super(age, color);/ 重写吃饭public void eat() System.out.println(getAge() + 岁的 + getColor() + 的鸭子在吃饭);/ 特有 游泳p

8、ublic void swim () System.out.println(getAge() + 岁的 + getColor() + 的鸭子在游泳);第四题:需求实现语法点:封装,继承,抽象 ,抽象类请使用代码描述:1. 经理成员变量:工号,姓名,工资成员 :工作(管理其他人),吃饭(吃鱼)2. 厨师成员变量:工号,姓名,工资成员 :工作(炒菜),吃饭(吃肉)按步骤编写代码,效果 :开发提示:把经理和厨师的共性内容(工号属性,姓名属性,工资属性,工作 ,吃饭 )抽取到员工类中员工类中定义抽象的工作 和抽象的吃饭经理继承员工,重写工作 ,和吃饭厨师继承员工,重写工作 ,和吃饭参考 :public

9、 class Test7 public static void main(String args) / 创建Manager对象Manager m = ager(m110, 老王, 10000);/ 调用Manager对象的eat m.eat();/ 调用Manager对象的work m.work();/ 创建Cook对象Cook c = new Cook(c110, 小王, 6000);/ 调用Cook对象的eat c.eat();/ 调用Cook对象的work c.work();/ 员工类abstract class Employee / 工号属性,姓名属性,工资属性private Stri

10、ng id; private String name;private double salary;public Employee() public Employee(String id, String name, double salary) this.id = id; = name; this.salary = salary;/ 抽象的工作public abstract void work();/ 抽象的吃饭public abstract void eat();public String getId() return id;public void setId(String

11、id) this.id = id;public String getName() return name;public void setName(String name) = name;public double getSalary() return salary;public void setSalary(double salary) this.salary = salary;/ 经理继承员工,重写工作 ,和吃饭class Manager extends Employee public Manager() public Manager(String id, String

12、name, double salary) super(id, name, salary);Overridepublic void work() System.out.println(工号为: + getId() + ,姓名为: + getName() + 工资为: + getSalary() + 的经理在工作,管理其他人);Overridepublic void eat() System.out.println(工号为: + getId() + ,姓名为: + getName() + 工资为: + getSalary() + 的经理在吃鱼);class Cook extends Employe

13、e public Cook() public Cook(String id, String name, double salary) super(id, name, salary);Overridepublic void work() System.out.println(工号为: + getId() + ,姓名为: + getName() + 工资为: + getSalary() + 的厨师在工作,炒菜);Overridepublic void eat() System.out.println(工号为: + getId() + ,姓名为: + getName() + 工资为: + getSa

14、lary() + 的厨师在吃肉);第五题:需求实现语法点:封装,继承,抽象 ,抽象类请使用代码描述1. 在传智播客有很多员工(Employee),按照工作内容不同分教研部员工(Teacher)和行政部员工(AdminStaff)2. 教研部根据教学的方式不同又分为讲师(Lecturer)和助教(Tutor)3. 行政部根据负责事项不同,又分为维护专员(Maintainer),采购专员(Buyer)4. 公司的每一个员工都编号,姓名和其负责的工作5. 每个员工都有工作的功能,但是具体的工作内容又不一样,在向上抽取的时候定义为抽象按步骤编写代码,效果 :开发提示:编写步骤: 1. 定义抽象类员工类

15、(Employee) a)成员变量: 工号(id),姓名(name) b)抽象 : void work(); c)提供无参和带参的构造 以及setters和getters 2. 定义抽象类教研部员工(Teacher)类继承员工类(Employee) a)提供无参和带参的构造 3. 定义抽象类行政部员工(AdminSta)类继承员工类(Employee) a)提供无参和带参的构造方法 4. 定义讲师(Lecturer)类继承研部员工(Teacher)类 a)提供无参和带参的构造 b)实现抽象 : void work(); 输出格式: 工号为 666 的讲师 在讲课 5. 定义助教(Tutor)类

16、继承研部员工(Teacher)类 a)提供无参和带参的构造 b)实现抽象 : void work(); 输出格式: 工号为 668 的助教 在帮助学生解决问题 6.护专员(Maintainer)类继承行政部员工(AdminSta)类 a)提供无参和带参的构造 b)实现抽象 : void work(); 输出格式: 工号为 686 的维护专员 庖丁 在解决不能共享屏幕问题 7. 定义采购专员(Buyer) 类继承行政部员工(AdminSta)类 a)提供无参和带参的构造 b)实现抽象 : void work(); 输出格式: 工号为 888 的采购专员在采购音响 8. 定义测试类Test8 a)

17、创建讲师对象 l, 把工号赋值为666,姓名赋值为” ” b)调用讲师对象l的工作 c)创建助教对象 t, 把工号赋值为668,姓名赋值为” ” d)调用助教对象t的工作 e)创建维护专员对象 m, 把工号赋值为686,姓名赋值为”庖丁” f)调用维护专员对象m的工作 g)创建采购专员对象 b, 把工号赋值为888,姓名赋值为” ” h)调用采购专员对象b的工作参考 :Employee类/*1. 定义抽象类员工类(Employee)a) 成员变量: 工号(id),姓名(name)b) 抽象 : void work();c) 提供无参和带参的构造 以及setters和getters*/publi

18、c abstract class Employee / a)成员变量: 工号(id),姓名(name) private String id;private String name;/ b)抽象 : void work(); public abstract void work();/ c)提供无参和带参的构造 以及setters和getters public Employee() Teacher类/*2.定义抽象类教研部员工(Teacher)类继承员工类(Employee)*/public abstract class Teacher extends Employee/ a)提供无参和带参的构造

19、public Teacher() super();public Teacher(String id, String name) super(id, name);AdminSta类super();public Employee(String id, String name) super();this.id = id; = name;public String getId() return id;public void setId(String id) this.id = id;public String getName() return name;public void se

20、tName(String name) = name;/*3.定义抽象类行政部员工(AdminStaff)类继承员工类(Employee)*/public abstract class AdminStaff extends Employee / a)提供无参和带参的构造public AdminStaff() super();public AdminStaff(String id, String name) super(id, name);Lecturer类/*4.定义讲师(Lecturer)类继承研部员工(Teacher)类*/public class Lecturer ex

21、tends Teacher / a)提供无参和带参的构造public Lecturer() super();public Lecturer(String id, String name) super(id, name);/ b)实现抽象 : void work();/ 输出格式: 工号为 666 的讲师 在讲课public void work() System.out.println(工号为 +getId()+ 的讲师 +getName()+ 在讲课);Tutor类/*5.定义助教(Tutor)类继承研部员工(Teacher)类*/public class Tutor extends Teac

22、her/ a)提供无参和带参的构造public Tutor() super();public Tutor(String id, String name) super(id, name);/ b)实现抽象 : void work();/ i.输出格式: 工号为 668的助教 在帮助学生解决问题public void work() System.out.println(工号为 +getId()+的助教 +getName()+ 在帮助学生解决问题);Maintainer类/*6. 护专员(Maintainer)类继承行政部员工(AdminStaff)类*/public class Maintainer extends AdminStaff / a)提供无参和带参的构造public Maintainer() super();public Maintainer(String id, String name) super(id, name);/ b)实现抽象 : void work();/ i.输出格式: 工号为 686 的维护专员 庖丁 在解决不能共享屏幕问题public void work() System.out.println(工号为 +getId()+ 的维护专员 +

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论