面向对象--类继承与接口(二)实验报告 下载本文

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

实验十 类继承与接口(二)

课程名称: 面向对象程序设计

实验项目名称: 实验十 类继承与接口 (二) 学生姓名: 专业: 学号: 实验地点: 实验日期: 年 月

【实验目的】

1.掌握Java类的继承特点,包括子类声明、对象创建 2. 掌握域的继承与隐藏的特点和用法 3. 掌握方法的继承与重写的特点和用法

【实验内容】

一. 改错题

检查下面代码是否有错,如果有错,写明错误原因,并修正错误。

(1) class Aaa{ int i; Aaa(){i=-1; } Aaa(int a){ i = a;}

Aaa(double d){Aaa((int)d);} }

是否出错:是

出错原因(如果出错):构造器调用构造器不能直接用名 class Aaa{

int i; }

Aaa(){i=-1; } Aaa(int a){ i = a;}

Aaa(double d){this((int)d);}

(2) class Aaa{ int i; Aaa(){i=-1; } Aaa(int a){ i = a;}

Aaa(double a){int b=(int)a;this(b);} }

是否出错:是

出错原因(如果出错):this放第一行 class Aaa{

(3) class Aaa{ int i; Aaa(int a){ i = a;} }

class Bbb extends Aaa{ Bbb(){ } }

是否出错:是

出错原因(如果出错):父类没有无参构造,子类中药通过super调用父类构造 class Aaa{

(4) class Aaa{ private int i;

int i; }

Aaa(){i=-1; } Aaa(int a){ i = a;}

Aaa(double a){this((int)a);}

int i;

Aaa(int a){ i = a;} }

class Bbb extends Aaa{ }

Bbb(int a) { }

super(a);

protected int j; }

class Bbb extends Aaa{ Bbb(){ i = 10; j = 99; }

}

是否出错:是

出错原因(如果出错):private只能在自己的类中使用 class Aaa{

(5)编译下面程序,程序是否出错 class A{ int i =100; }

class B extends A{ int i =10000;

public static void main(String[] args){ System.out.println(this.i); System.out.println(super.i); }

}

a) 是否出错: 是

b) 出错原因(如果出错): 不能在静态方法使用this super class A{

int i =100; }

class B extends A{ int i =10000; protected int i; protected int j; }

class Bbb extends Aaa{ Bbb(){ i = 10; j = 99; } }