关键词:
题目如下
定义一个计算机类(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
面向对象高级编程
...特性,并在此基础上面还具有自己的特性可以从其他继承类的方法中实现2)一个子类即可以继承一个类还可以继承另外一个类,这种设计成为Mixin3)Mixin的功能就是给一个类增加多种功能2.定制类在Python中有多个方法来实现python... 查看详情
java中的继承定义。
...。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,... 查看详情
基础知识——java类的继承重载与重写
...类,就总是隐式地从根类Object进行继承;二、子类继承父类的成员变量 1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量; 2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,... 查看详情
问题a:b继承圆到圆柱体
题目描述定义了Circle圆形类,在此基础上派生出Cylinder圆柱体类。Circle圆形类定义如下:classCirclepublic:Circle(doubler):radius(r)doublearea()returnPI*radius*radius;//圆面积protected:doubleradius;//圆半径;请在下面的程序段基础上完成整个设计。在主... 查看详情
每日打卡-14(代码片段)
...()、计算对象周长的函数getPerim()。 在此基础上,通过继承Rectangle得到一个新的类Square,然后在Shape中增加一个函数intgetVertexCount()const用来获得当前图形的顶点个数,用以下几种方法分别实现,并体会各自的优劣。(1)使用dynamic... 查看详情
从通用基础继承的测试类在 MSTest 中被忽略
...中创建通用基测试类并从它继承时,我无法运行所有继承类的测试。BaseDependencyPropertyFactoryTest位于Whathecode.PresentationFramework.Tes 查看详情
java基础---面向对象
...修饰,表示两个类之间的关系为父子类关系,子类具有父类的属性及方法。可以重写; 在继承中值得注意的是:能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;对于父类的包访问权限(fr... 查看详情
继承封装多态简单介绍
面向对象的程序设计有三个主要特征,如:封装性?继承性?多态性 封装:不需要让外界知道的信息隐藏起来有些对象的属性及行为允许外界用户知道或使用,但不允许更改,而另一些属性或行为,则不允许外界知晓;或只允... 查看详情
javase8基础成员内部类在成员位置定义一个内部类
os:windows7x64 jdk:jdk-8u131-windows-x64 ide:EclipseOxygenRelease(4.7.0) 代码://内部类就是在一个类的内部在定义一个类//外部类classTestOut 查看详情
一个xib,多个类在iOS中没有继承?
...接的父类,因为它意味着多个类(当然,我不能将一个父类的对象插入到另一个父类的对象/类中)。如果它们具有相同的IBOutlet变量但完全不同的类,是否可以将多个类与一个xib链接 查看详情
python基础之面向对象类的继承与多态
...义:一个类除了拥有自身的属性方法之外,还拥有另外一个类的属性和方法继承:1.单继承 2.多继承子类:一个类继承了另外一个类,那么这个类是子类(衍生类)父类:一个类继承了另外一个类,被继承的那个类是父类(超类,基类)object... 查看详情
关于c++基类与派生类
当定义派生类的对象时,会首先调用基类的构造函数我听书上说(别管什么书),既然要初始化派生类的对象,那就同时也把基类也初始化吧1那这样一个动作有什么用2C++为什么要设置这一个过程:当定义派生类的对象时,会首... 查看详情
类的继承与多态
继承//概念:子类可以继承父类的一切//方法重写:在子类里面对父类的方法进行重写//特点:单继承:一个子类只能有一个父类,一个父类可以派生出多个子类//override:重写//overload:重载,编译多态classRen{ public$name; func... 查看详情
python中类的声明,使用,属性,实例属性,计算属性及继承,重写(代码片段)
Python中的类的定义以及使用:类的定义:定义类在Python中,类的定义使用class关键字来实现语法如下:classclassName:"类的注释"类的实体(当没有实体时使用pass代替)下面定义一个鸟类;classflyBord:"""鸟类"""pass #这里我们并没有实... 查看详情
java基础——内部类
...一个类B,B就被称为内部类,而A相对的被称为外部类内部类的形式:按照内部类在类中定义的位置不同,可以分为以下两种形式:1.在类的成员位置:成员内部类2.在类的局部位置:局部内部类定义格式:publicclassOuter //定义内... 查看详情
thirdpractice5(代码片段)
Thirdpractice5任务描述定义一个Shape基类,在此基础上派生出Rectangle和Circle,二者都有GetArea()函数计算对象的面积。使用Rectangle类创建一个派生类Square。测试输入:5,6,8,9预期输出:TheareaoftheCircleis78.5TheareaoftheRectangleis48Theareaofthe... 查看详情
object类
Object类的作用基本定义:Object类是所有类的父类,任何一个类在定义的时候如果没有明确的继承一个父类的话, 常用方法 查看详情
属性的覆盖
...在开发中类中的属性必须封装,这样的覆盖没有意义,父类的私有属性子类看不见 案例:要求定义一个整形数组的操作类,数组大小由外部决定,用户可以向数组中增加数据,以及取得数组中的全部数据,在这要求上派生出... 查看详情