Java实验报告3 继承和多态 下载本文

内容发布更新时间 : 2024/4/27 20:04:00星期一 下面是文章的全部内容请认真阅读。

1

实验报告

【实验名称】 第三章 继承和多态 【实验目的】

1.学习Java中继承的概念 2.学习上转型对象的原理 3.了解抽象类的概念

【实验原理】

1.Java程序设计基本原理 2.面向对象程序设计基本原理

【实验内容】

一、 结合本次课程,简答:

1、父类如果想保留某些属性和方法怎么办?

父类可以将某些属性和方法设定为private类型。 2、父类的某些属性和方法,不太适合子类怎么办?

子类可以对父类的方法进行修改(重写)

3、子类如何调用被隐藏的父类的属性和方法?

子类可以使用super.属性和super.方法来调用被隐藏的父类的属性

和方法。

2 4、父类不想被继承怎么办?

类可以用final设计成不被允许继承。

5、父类允许被继承,但是不想被修改属性和方法怎么办?

设计成非私有,并且用final修饰。

二、试分析java为什么取消了多重继承?

若具有多重继承的功能,则一个子代会对应多个父代,在子代进行调用父代内容的时候,就会发生错误,陷入矛盾,因此在Java中就取消了多重继承。

三、程序设计

实验一:按要求完成程序

1、设计一个父类,该类有一个方法public int f(int a,int b),返回a,b的最大公约数(如下)

2、设计一个子类,重写父类的f方法,且返回a,b的最小公倍数 要求:在子类重写父类方法f时,首先调用父类的方法f获得最大公约数m,然后再用公式(a*b)/m获得最小公倍数。

3、最后写一个测试程序,创建一个父类的上转型对象,调用子类的f()方法,求两个数的最小公倍数。

public int f(int a,int b) { //求最大公约数 int r =1 ;

int aa = a; int bb = b;

while (r!=0){ r = aa % bb; aa = bb; bb = r; } return aa; }} 代码:

class GongYue{

public int f(int a,int b){ //求最大公约数

int r =1 ;

3 int aa = a; int bb = b;

while (r!=0){ r = aa % bb; aa = bb; bb = r; } return aa; } }

class Gong extends GongYue{ }

class test {

public static void main(String[] args) { } }

GongYue ss=new Gong(); int p=ss.f(15,20);

System.out.println(\最大公倍数为:\public int f(int a,int b){

int m;

m=super.f(a,b); return a*b/m;

}