实验十 类继承与接口(二)
课程名称: 面向对象程序设计
实验项目名称: 实验十 类继承与接口 (二) 学生姓名: 专业: 学号: 实验地点: 实验日期: 年 月
【实验目的】
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; } }