第五周实验继承与多态

2019-03-11 15:46

Java程序设计实验西南交大信息学院陈帆(2014) 实验内容 姓 名 专 业 第五周实验 继承与多态 学号 成 绩 班 级 日 期 【实验目的】 ? 理解面向对象编程的核心特性:继承和多态 ? super和this的应用 一、类的继承 填空,完成并运行程序。写下程序运行结果并回答问题。 理解创建新类B(通过继承现有类A)的方法,使新类B具有类A的功能,并添加新的功能,编写主类考查通过继承创建的类B与父类A 程序01: class A{ int i,j; void showij(){System.out.println(\} class B { //B类继承A类的属性和方法 int k; void showk(){System.out.println(\void sum(){System.out.println(\} public class M1{ public static void main(String args[]){ A father =new A(); B son=new B(); father.i=10;father.j=20; //使用父类A中的方法 son.i=7;son.j=8;son.k=9; //使用子类B从父类A中继承的方法 //使用子类B新增的方法showk() son.sum(); } } 思考题: 1、将父类A中的成员变量i声明为private,编译时观察有哪几处错误? 2、在程序一中的子类B中添加语句:int i,j;(对父类A中的同名变量i,j 进行了重新定义)观察运行结果有什么不同?为什么?这种现象称为什么? 3、在程序一中在子类B中添加成员方法: void showij(){System.out.println (“覆盖了父类的成员方法”);} (对父类A中的同名方法进行重新定义)观察运行结果有什么不同?为什么?这种现象称为什么? 第1页共13页

Java程序设计实验西南交大信息学院陈帆(2014) 【实验结果与分析】 将程序补充完整如下: package text2; class A{ int i,j; void showij(){System.out.println(\} class B extends A { //B类继承A类的属性和方法 int k; void showk(){System.out.println(\void sum(){System.out.println(\} public class M1 { public static void main(String args[]){ A father =new A(); B son=new B(); father.i=10;father.j=20; father.showij(); //使用父类A中的方法 son.i=7;son.j=8;son.k=9; son.showij();//使用子类B从父类A中继承的方法 son.showk(); //使用子类B新增的方法showk() son.sum(); } } 运行结果如下: 第2页共13页

Java程序设计实验西南交大信息学院陈帆(2014) 思考题: 答:(1)将父类A中的成员变量i声明为private,编译时子类B不能继承父类A的私有成员i。并且不能调用使用了i的方法。 (2)在程序一中的子类B中添加语句:int i,j;(对父类A中的同名变量i,j 进行了重新定义)观察运行结果如下 因为i,j被重新定义,B的对象调用自己类的成员变量,且并没有对其赋值,所以为0。这种现象称为变量重写。 (3)在程序一中在子类B中添加成员方法: void showij(){System.out.println (“覆盖了父类的成员方法”);} (对父类A中的同名方法进行重新定义)观察运行结果如下: 因为B类的同名成员方法覆盖了父类的成员方法,则最后调用的是B类的成员方法。这种现象称为方法重写(覆盖)。 ________________________________________________________________________________ 二、类的多态性 目的:将功能相近的方法用同一名字表示。 如何区分:用参数表的个数、类型和顺序来区分相同名字而功能不同的方法。 题目02:完成程序二中主类中的主方法,内容包括: (1) 用类Intsort创建对象s (2) 显示输出两个数的排序10,25 (3) 显示输出三个数的排序10,25 ,17 程序02: class Intsort{ public String sort(int a,int b){ //定义两个数排序的方法 第3页共13页

Java程序设计实验西南交大信息学院陈帆(2014) if(a>b)return a+” ”+b; else return b+” ”+a; } public String sort(int a,int b,int c){ int swap; if(a

if(a>b) return a+\ else return b+\Java程序设计实验西南交大信息学院陈帆(2014) } public class M2 { public static void main(String args[]){ } } 结果为: Intsort s=new Intsort(); s.sort(10, 25); s.sort(10, 25, 17); } 三、构造方法的重载 重载构造方法的目的: 提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。 03、编辑、编译、运行下面java程序,理解Java构造方法的重载 class RunDemo { private String userName, password; RunDemo() { System.out.println(\ } RunDemo(String name) { userName=name; } RunDemo(String name, String pwd) { this(name); password=pwd; check(); } 第5页共13页


第五周实验继承与多态.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:投标毕业设计说明

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: