题目如下
定义一个计算机类(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 package shangji20180514; 2 3 public class Computer { 4 String name; 5 int coreNumber; 6 void setName(String nam){ 7 name = nam; 8 } 9 String getName() { 10 return name; 11 } 12 }
文件二:Desktop.java
1 package shangji20180514; 2 3 public class Desktop extends Computer { 4 void setName(String nam) { 5 name = "D-"+nam; 6 } 7 String getName() { 8 return name+"-D"; 9 } 10 }
文件三:Notebook.java
1 package shangji20180514; 2 3 public class Notebook extends Computer{ 4 void setName(String nam) { 5 name = "N-"+nam; 6 } 7 String getName() { 8 return name+"-N"; 9 } 10 }
文件四:ComputerTest.java
1 package shangji20180514; 2 3 public class ComputerTest { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 Desktop c1 = new Desktop(); 8 c1.setName("desktop01"); 9 System.out.println(c1.getName()); 10 11 Notebook c2 = new Notebook(); 12 c2.setName("notebook01"); 13 System.out.println(c2.getName()); 14 15 } 16 17 }
原文地址:https://www.cnblogs.com/peng-free/p/9047900.html
时间: 2024-10-11 05:11:49