题目如下
定义一个计算机类(Computer),并在它的基础上派生出两个子类:台上机(Desktop)和便携机类(Notebook),在Computer中定义几个方法,并在子类Desktop和Notebook中覆盖这些方法。在main方法中利用对象类型转换将类Desktop和Notebook的对象分别赋值给Computer对象,并应用多态调用这些方法。
实验目的
(1) 理解继承的概念,掌握继承的语法。
(2) 学习定义和使用子类。
(3) 掌握继承过程中的方法覆盖,区分它与方法重载的不同。
(4) 掌握对象类型之间的转换规则。
(5) 掌握多态与动态绑定。
实验步骤
(1) 定义父类Computer,其中包括方法f1和f2;
(2) 定义子类Desktop继承于父类Computer,在其中覆盖方法f1和f2;
(3) 定义子类Notebook继承于父类Computer,在其中覆盖方法f1和f2;
(4) 定义一个包含main方法的类;
(5) 在main方法中创建一个Desktop对象,将它赋值给Computer类的对象c1,并通过对象c1调用方法f1和f2;
(6) 在main方法中创建一个Notebook类的对象,将它赋值给Computer类的对象c2,并通过对象c2调用方法f1和f2。
实现如下
文件一:Computer.java
1 packageshangji20180514;2
3 public classComputer {4 String name;5 intcoreNumber;6 voidsetName(String nam){7 name =nam;8 }9 String getName() {10 returnname;11 }12 }
文件二:Desktop.java
1 packageshangji20180514;2
3 public class Desktop extendsComputer {4 voidsetName(String nam) {5 name = "D-"+nam;6 }7 String getName() {8 return name+"-D";9 }10 }
文件三:Notebook.java
1 packageshangji20180514;2
3 public class Notebook extendsComputer{4 voidsetName(String nam) {5 name = "N-"+nam;6 }7 String getName() {8 return name+"-N";9 }10 }
文件四:ComputerTest.java
1 packageshangji20180514;2
3 public classComputerTest {4
5 public static voidmain(String[] args) {6 //TODO Auto-generated method stub
7 Desktop c1 = newDesktop();8 c1.setName("desktop01");9 System.out.println(c1.getName());10
11 Notebook c2 = newNotebook();12 c2.setName("notebook01");13 System.out.println(c2.getName());14
15 }16
17 }