面向对象--类继承与接口实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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){

相关文档
最新文档