面向对象--类继承与接口实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十类继承与接口(二)
课程名称:面向对象程序设计
实验项目名称:实验十类继承与接口(二)
学生姓名:专业:学号:
实验地点:实验日期:年月
【实验目的】
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{
int i;
Aaa(){i=-1; }
Aaa(int a){ i = a;}
Aaa(double a){this((int)a);}
}
(3)
class Aaa{
int i;
Aaa(int a){ i = a;}
}
class Bbb extends Aaa{
Bbb(){ }
}
是否出错:是
出错原因(如果出错):父类没有无参构造,子类中药通过super调用父类构造class Aaa{
int i;
Aaa(int a){ i = a;}
}
class Bbb extends Aaa{
Bbb(int a) {
super(a);
}
}
(4)
class Aaa{
private int i;
protected int j;
}
class Bbb extends Aaa{
Bbb(){
i = 10;
j = 99;
}
}
是否出错:是
出错原因(如果出错):private只能在自己的类中使用
class Aaa{
protected int i;
protected int j;
}
class Bbb extends Aaa{
Bbb(){
i = 10;
j = 99;
}
}
(5)编译下面程序,程序是否出错
class A{
int i =100;
}
class B extends A{
int i =10000;
public static void main(String[] args){
a)是否出错:
是
b)出错原因(如果出错):
不能在静态方法使用this super
class A{
int i =100;
}
class B extends A{
int i =10000;
public void main(String[] args){
}
}
c)如果将上述类B的int i =10000改为static int i =10000;类A的int i =100改为static
int i =100;
程序是否出错?是
出错原因(如果出错):
不能在静态方法使用this super
class A{
int i =100;
}
class B extends A{
int i =10000;
public void main(String[] args){
}
}
d)如果将类B的main方法改为
public static void main(String[] args){
B b =new B();
}
程序是否出错? 是
出错原因(如果出错):不能强制将in类型改为A
如果没出错, 给出结果:
上面的的含义:
的含义:
(6)
class Aaa{
int i;
public void Aaa(int a){ i=a;}
public static void main(String[] args){
Aaa a = new Aaa(10);
}
}
是否出错:是
出错原因(如果出错):构造器没有返回
class Aaa{
int i;
public Aaa(int a){ i=a;}
public static void main(String[] args){