内容发布更新时间 : 2024/12/26 2:33:54星期一 下面是文章的全部内容请认真阅读。
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;
}