JAVA类的继承实验报告

合集下载

Java语言程序设计实验六 类的继承(接口与包)实验报告 (2)

Java语言程序设计实验六  类的继承(接口与包)实验报告 (2)

**大学**学院Java语言程序设计实验报告System.out.println("sum="+m1.num1+"+"+m1.num2+"+"+m1.num3+"="+m1.sum);}}问题:a、子类的sum,num1,num2分别是多少,父类的sum,num1,num2 分别是多少,如何在main中输出父类的sum,num1,num2子类:sum=600,num1=100,num2=200父类:sum=0,num1=0,num2=0;b、就这个例子,谈谈你对覆盖的理解?当子类的变量与父类的变量相同时,父类的变量被隐藏,main函数自动调用子类的变量2.运行下面的程序,理解方法的继承。

class Sort3{double max1,max2,max3;Sort3(){max1=-1;max2=-1;max3=-1;}double s;if (max1<max2){ s=max1;max1=max2;max2=s; }if (max1<max3){ s=max1;max1=max3;max3=s; }if (max2<max3){ s=max2;max2=max3;max3=s; }}}class sub_Sort3 extends Sort3{void subsort(double i,double j,double k){max1=i;max2=j;max3=k;sort(); //调用父类中的方法sort() …….① } }public class Class1{public static void main (String args[]){sub_Sort3 m1 = new sub_Sort3();m1.subsort(100,200,300);System.out.println("三个数从大到小为:"+m1.max1+","+m1.max2+","+m1.max3);}}问题:a、为什么标有.①处可以直接使用,而不需要生成Sort3的对象,然后使用该对象. sort()调用因为sub_sort3继承了sort,所以sort的方法就像是在子类中直接定义一样,可以被子类直接调用 B、程序实现什么功能?三个数之间互相比较大小3.运行下面的程序,理解方法的重载。

java实验报告 类的继承

java实验报告 类的继承

java实验报告类的继承一、实验目的1、深入理解 Java 中类的继承概念和机制。

2、掌握通过继承实现代码复用和功能扩展。

3、学会使用 super 关键字和方法重写。

二、实验环境1、操作系统:Windows 102、开发工具:Eclipse 或 IntelliJ IDEA三、实验内容1、创建一个父类`Animal`包含属性:`name`(字符串类型),`age`(整数类型)包含方法:`eat()`(打印出动物正在吃东西),`sleep()`(打印出动物正在睡觉)2、创建子类`Dog` 继承自`Animal`新增属性:`breed`(字符串类型,表示狗的品种)重写父类的`eat()`方法,打印出狗吃东西的特有方式新增方法:`bark()`(打印出狗在叫)3、创建子类`Cat` 继承自`Animal`新增属性:`color`(字符串类型,表示猫的颜色)重写父类的`sleep()`方法,打印出猫睡觉的特有姿势新增方法:`meow()`(打印出猫在叫)四、实验步骤1、在 Java 项目中创建一个名为`Animal` 的类:```javapublic class Animal {private String name;private int age;public Animal(String name, int age) {thisname = name;thisage = age;}public void eat(){Systemoutprintln(name +" is eating");}public void sleep(){Systemoutprintln(name +" is sleeping");}}```2、创建一个名为`Dog` 的类继承自`Animal`:```javapublic class Dog extends Animal {private String breed;public Dog(String name, int age, String breed) {super(name, age);thisbreed = breed;}@Overridepublic void eat(){Systemoutprintln(supergetName()+" the "+ breed +" dog is eating greedily");}public void bark(){}}```3、创建一个名为`Cat` 的类继承自`Animal`:```javapublic class Cat extends Animal {private String color;public Cat(String name, int age, String color) {super(name, age);thiscolor = color;}@Overridepublic void sleep(){Systemoutprintln(supergetName()+" the "+ color +" cat is sleeping curled up");}public void meow(){}}```4、在`Main` 类中进行测试:```javapublic class Main {public static void main(String args) {Dog dog = new Dog("Buddy", 3, "Labrador");dogeat();dogbark();dogsleep();Cat cat = new Cat("Mimi", 2, "White");cateat();catsleep();catmeow();}}```五、实验结果1、运行`Main` 类后,输出结果如下:`Buddy the Labrador dog is eating greedily``Buddy is barking``Buddy is sleeping``Mimi is eating``Mimi the White cat is sleeping curled up``Mimi is meowing`2、可以看到,子类`Dog` 重写了父类`Animal` 的`eat()`方法,展示了狗特有的吃东西方式;子类`Cat` 重写了父类的`sleep()`方法,展示了猫特有的睡觉姿势。

java类的继承实验报告

java类的继承实验报告

java类的继承实验报告Java类的继承实验报告引言:在面向对象的编程语言中,继承是一种重要的概念。

Java作为一门面向对象的编程语言,也支持类的继承。

本篇实验报告将介绍Java类的继承的基本概念、语法以及实际应用。

一、继承的基本概念继承是指一个类可以派生出另一个类,被派生出的类称为子类,派生出子类的类称为父类。

子类可以继承父类的属性和方法,并且可以在此基础上进行扩展或修改。

继承的关系可以形成类的层次结构,使得代码的复用性和可维护性得到提高。

二、继承的语法在Java中,使用关键字"extends"来实现类的继承关系。

子类通过继承父类来获得父类的属性和方法。

语法格式如下:```javaclass 子类名 extends 父类名 {// 子类的成员变量和方法}```在子类中可以重写父类的方法,以实现自己的逻辑。

使用关键字"super"可以调用父类的构造方法和成员变量。

三、继承的实际应用1. 代码复用继承的一个主要优势是可以实现代码的复用。

子类可以继承父类的属性和方法,避免了重复编写相同的代码。

例如,假设有一个父类"Animal",子类"Dog"和"Cat"可以继承父类的一些通用属性和方法,如"eat()"和"sleep()"。

2. 多态性继承也为多态性的实现提供了基础。

多态性是指一个对象可以根据不同的类型表现出不同的行为。

通过继承,可以将不同的子类对象赋给父类引用,实现对不同子类对象的统一操作。

例如,有一个父类"Shape",子类"Circle"和"Rectangle"可以继承父类的方法"draw()",并在自己的类中实现具体的绘制逻辑。

通过将子类对象赋给父类引用,可以统一调用"draw()"方法,实现对不同形状的绘制。

Java实验3 继承与接口

Java实验3  继承与接口

实验3 继承与接口[实验目的]1、掌握java 继承中父类及其子类的定义方法。

2、掌握子类重写父类同名方法的方法。

3、掌握接口的用法。

[实验要求]1、复习理论教学中所学的内容。

2、认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。

3、认真总结实验并书写实验报告。

[实验课时] 2学时[实验教学方式] 学生上机实验,教师随堂指导。

[实验内容]1、定义父类People,分别定义People类的子类ChinaPeople,AmericanPeople和BeijingPeople 并分别重写父类中的各个方法。

最后在主方法中分别创建各子类的对象并调用各自的方法打印输出信息。

该程序的模板代码如下:请将其补充完整并调试运行。

class People{protected double weight,height;public void speakHello(){System.out.println("yayawawa");}public void averageHeight(){height=173;System.out.println("average height:"+height);}public void averageWeight(){weight=70;System.out.println("average weight:"+weight);}}class ChinaPeople extends People{【代码1】 //重写public void speakHello()方法,要求输出类似“你好,吃了吗”这样的//汉语信息【代码2】 //重写public void averageHeight()方法,要求输出类似//“中国人的平均身高:168.78厘米”这样的汉语信息【代码3】 //重写public void averageWeight()方法,//要求输出类似“中国人的平均体重:65公斤”这样的汉语信息public void chinaGongfu(){【代码4】//输出中国武术的信息,例如:"坐如钟,站如松,睡如弓"等}}class AmericanPeople extends People{【代码5】 //重写public void speakHello()方法,要求输出类似//“How do you do”这样的英语信息。

java类的继承实验报告

java类的继承实验报告

java类的继承实验报告Java类的继承实验报告引言:在面向对象的编程语言中,继承是一种重要的概念。

Java作为一种面向对象的编程语言,也提供了类的继承机制。

本实验旨在通过编写Java程序,深入理解和掌握Java类的继承。

实验目的:1. 理解继承的概念和原理;2. 掌握Java中类的继承的语法和用法;3. 实践继承的实际应用。

实验过程:1. 创建父类和子类在实验中,我们首先创建一个父类和一个子类。

父类可以是一个基本的类,子类则继承了父类的属性和方法。

这样,子类就可以在不改变父类的基础上,扩展自己的功能。

2. 继承的语法和用法Java中,使用关键字"extends"来实现类的继承。

子类通过继承父类,可以获得父类的属性和方法,并且可以在子类中添加新的属性和方法。

在实验中,我们可以通过创建子类对象,并调用继承自父类的方法来验证继承的正确性。

3. 方法的重写在继承中,子类可以重写父类的方法。

这样,当子类调用该方法时,实际上执行的是子类重写后的方法。

通过方法的重写,我们可以实现多态性的效果。

4. 实际应用在实验中,我们可以选择一个具体的应用场景,例如动物类的继承。

我们可以创建一个父类Animal,包含基本的属性和方法,然后创建子类Dog和Cat,分别继承Animal类,并添加自己的特有属性和方法。

通过这个实例,我们可以更好地理解继承的实际应用。

实验结果:通过实验,我们成功地创建了父类和子类,并验证了继承的正确性。

我们还成功地重写了父类的方法,实现了多态性的效果。

最后,我们还通过实际应用的例子,更好地理解了继承的实际应用。

实验总结:通过本次实验,我们深入理解和掌握了Java类的继承。

继承是面向对象编程中的重要概念,通过继承,我们可以实现代码的重用和扩展。

在实际应用中,继承也可以帮助我们更好地组织代码,提高代码的可读性和可维护性。

然而,继承也有一些限制和注意事项。

首先,Java中只支持单继承,即一个子类只能继承一个父类。

Java语言程序设计实验六 类的继承(接口与包)实验报告 (2)

Java语言程序设计实验六  类的继承(接口与包)实验报告 (2)
B、程序实现什么功能?
三个数之间互相比较大小
3.运行下面的程序,理解方法的重载。 class Sort2or3{
double max1,max2,max3; Sort2or3(){
max1=-1; max2=-1;
max3=-1;
} void sort(double i,double j){
double s; max1=i; max2=j; if(max1<max2){ s=max1;max1=max2;max2=s; } } void sort(double i,double j,double k){ double s; max1=i; max2=j; max3=k; if (max1<max2){ s=max1;max1=max2;max2=s; } if (max1<max3){ s=max1;max1=max3;max3=s; } if (max2<max3){ s=max2;max2=max3;max3=s; } } } public class Class1{ public static void main (String args[]){ Sort2or3 m1 = new Sort2or3(); m1.sort(100,200); System.out.println("两个数从大到小为:"+m1.max1+","+m1.max2); m1.sort(50,150,100); System.out.println("三个数从大到小为: "+m1.max1+","+m1.max2+","+m1.max3); } }

Java继承与多态实验报告.doc

Java继承与多态实验报告.doc
Java的继承与多态实验报告
本报告致力于分析Java继承与多态的概念、原理和作用,以及相关实验过程及其结果。

继承,又称为分类,是Java面向对象程序设计语言中定义类之间关系的重要技术。

它使一个类可以使用另一个基类中定义的方法和属性,在基类中已经定义了一些功能,子
类可以对基类功能进行拓展与定制。

《Java技术手册》得出结论,继承可以有效提高软件的复用性、可维护性和可重用性,使大型的、复杂的程序有条理层次。

多态是Java中一种特殊的程序结构,允许不同类的对象对相同的消息作出不同的响应,由程序的消息而不是对象的类型来决定对象的行为。

它是Java多态性的基础,使程
序能够在不同对象上进行操作,统一实现。

从实验中,可以明显看出Java继承与多态之间的联系:多态必须依赖于继承,当子
类被创建时,它继承了母类的方法以及特性,这样,它才能以逐渐上升的方式处理所有消息,而多态给了子类独特-->性的功能。

同时,多态也方便了代码重用,因为子类会继承
母类的方法和属性。

此外,结果表明,多态的优点使程序可以提高可重用性,它也减少了代码的重复编写,同时允许特定类之外的类可以得到适用。

它促进了软件不断更新,因为多态给开发人员提
供了以对象层次组织代码的方法。

本练习涉及到Java继承与多态概念的整体概述和实现细节,为完全理解多态的概念
打下了坚实的基础。

它提供了一个理解和使用这些概念的有用方式和指导。

Java实验三实验报告

实验报告课程名称面向对象课程设计实验项目名称类的继承班级与班级代码13计算机科学与技术1班实验室名称(或课室)SS1 205专业计算机科学与技术任课教师尹华学号:12251102120姓名:林淑英实验日期:2014 年4 月28 日广东财经大学教务处制姓名林淑英实验报告成绩评语:指导教师(签名)年月日说明:指导教师评分后,实验报告交院(系)办公室保存。

实验三类的继承、多态、接口、访问控制符与修饰符实验目的:通过编程练习掌握类的继承,多态,接口,访问控制符与修饰符的使用方法。

实验原理:类的继承,接口。

实验设备:计算机,Eclipse。

实验题目:1.设计一个Person 类,其成员变量有:姓名(name)、性别(gender)、年龄(age);再设计一个Student类,它是类Person的子类,其成员变量有:学号(id)、班名(cname)、成绩(score),类Student中要有一个方法 display(),用来显示一个学生的信息。

编写一个测试程序,创建一个Student类的对象,要求name和id 是自己的姓名和学号,输出学生的各种信息,学生的基本信息在类Student的带参数的构造方法中设定。

2.定义一个类A,该类有一个方法f,方法f可以输出英文字母,再定义一个类B是A的子类,子类B不能重写父类A的方法f,子类有一个方法g,可以输出中文字符串。

编写测试程序,创建B的对象,输出英文字母和中文字符串。

3.定义一个坐标类Pointer,成员变量包括x和y;成员方法有:(1)构造方法(2)setX、setY、getX、getY、display方法(3)类方法distance用来计算两点之间的距离编写测试程序,创建Pointer的两个对象并计算两个点坐标的距离。

4. 定义一个抽象类Area、两个Area的子类RectArea和RoundArea,以及一个实现类ImpleArea。

要求如下(1)抽象类Area类中只包含一个抽象方法double area()。

java类的继承实验总结

java类的继承实验总结
在Java中,类的继承是面向对象编程的重要特性之一。

通过继承,子类可以从父类继承属性和方法,从而实现代码复用和层次化设计。

在实验过程中,我深入学习了Java的继承机制,总结了以下几点经验:
1. 子类可以继承父类的非私有属性和方法,可以重写父类的方法。

在重写方法时,要遵循Liskov替换原则,确保子类可以替换掉父类。

2. Java中只支持单继承。

利用接口可以实现多重继承的效果。

3. super关键字可以访问父类的属性和方法,也可以调用父类的构造方法。

4. 父类的构造方法会被自动调用,如果没有显式地调用super(),则会默认调用父类的无参构造方法。

如果父类没有无参构造方法,则需在子类中显式调用super()并传入相应的参数。

5. 子类构造方法中的第一行可以调用super(),也可以调用this()。

但是二者不能同时出现。

6. 父类和子类的引用可以相互转换,但是只能通过向上转型实现。

在向上转型时,子类的特有属性和方法会被隐藏。

通过这次实验,我更深刻地理解了Java的继承机制,并掌握了其在面向对象设计中的重要作用。

在今后的Java开发中,我将充分利用继承的优势,编写出更加优雅和高效的代码。

继承与接口实验报告

继承与接口实验报告实验名称:继承与接口实验实验目的:通过编写一个Java程序,探究继承与接口的相关概念、特点和应用。

实验过程:在实验过程中,我们创建了一个Java程序,包含了多个类和接口,用于说明继承和接口的相关概念和应用。

其中,类之间的继承关系如下所示:``` Animal ├── Mammal │ ├── Cat │ └── Dog └── Reptile └── Snake ```注:以上为继承关系图,箭头指向父类/超类。

在该程序中,所有的动物(Animal)都有以下属性:- 名称(name) - 年龄(age)除此之外,猫(Cat)、狗(Dog)和蛇(Snake)都有自己的属性和方法。

其中,猫和狗都是哺乳动物(Mammal),而蛇是爬行动物(Reptile)。

我们使用了两个接口,分别是:- 可以发声的(Soundable) - 可以移动的(Movable)这两个接口分别定义了两个方法:发声(makeSound)和移动(move)。

在这些类和接口的基础上,我们编写了一个测试类(TestAnimals),测试了每个类和接口的功能。

实验结果:- Animal类:Animal类是所有动物的“祖先”类,它包含了所有动物共有的属性。

- Mammal类:Mammal类是哺乳动物的基类,它包含了所有哺乳动物共有的属性和方法。

- Reptile类:Reptile类是爬行动物的基类,它包含了所有爬行动物共有的属性和方法。

- Cat类:Cat类继承了Mammal类,它包含了猫的属性和方法。

- Dog类:Dog类继承了Mammal类,它包含了狗的属性和方法。

- Snake类:Snake类继承了Reptile类,它包含了蛇的属性和方法。

- Soundable接口:Soundable接口定义了makeSound 方法,用于让实现了该接口的类发出声音。

- Movable接口:Movable接口定义了move方法,用于让实现了该接口的类移动。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》实验报告
实验六、类的继承
课程代码:1H10500学分:6
实验类型:实践型实验学时:4个学时
实验时间:2017.11.23 实验地点:5407
班级:计算机164 专业:计算机科学与技术专业学号:2016011147 姓名:林文辉
一、实验目的
(1)学习JAVA继承的思想
(2)了解JAVA语言继承的实现
二、实验内容及步骤
内容:在圆柱体类Cylinder里,用一个构造方法调用另一个构造方法
步骤:方案的设计与分析(类结构图。


(1)找出对象的共同属性和行为
(2)设计代表共同状态与行为的类
(3)决定子类是否需要让某项行为有特定的不同的运行方式
(4)寻找更多抽象化的机会
(5)完成类的继承层次
三、实验过程及结果
实验1代码:
abstract class Graphics {
abstract void parameter();
abstract void area();
}
class Rectangle extends Graphics{
double h,w;
Rectangle(double u,double v){h=u;w=v;}
void parameter() {
S ystem.out.println("矩形高度为:"+h+",矩形宽度为:"+w);
}
void area() {
S ystem.out.println("矩形面积为:"+(h*w));
}
}
class Circle extends Graphics{
double r;
String c;
Circle(double u,String v){r=u;c=v;}
void parameter() {
System.out.println("圆半径为:"+r+",圆颜色为:"+c);
}
void area() {
System.out.println("圆面积为:"+(Math.PI*r*r));
}
}
class ExamAbs{
public static void main(String args[]) {
Rectangle rec=new Rectangle(2.0, 3.0);
Circle cir=new Circle(4.0, "Red");
Graphics[]g= {rec,cir};
for(int i=0;i<g.length;i++) {
g[i].parameter();
g[i].area();
}
}
}
结果:
(该部分主要记录实验过程,包括实验代码及运行结果)
四、实验小结
Java中提供了this关键字,this关键字总是指向调用该方法的对象。

根据this出现位置的不同,this作为对象的默认引用有两种情形:
a.构造器中引用该构造器正在初始化的对象
b.在方法中引用调用该方法的对象
this最大的作用就是让类中一个方法,访问该类的另一个方法或实例变量。

把错误拷贝,并且给出修正过程。

(该部分主要针对实验结果进行理论及实际运行结果的具体分析,主要阐述为什么会有这个结果,程序填空实验可以将三、四两部分内容结合起来进行分析说明)。

相关文档
最新文档