当前位置:首页 > Java习题集3 - 图文
子类SubClass中定义了公共整型属性SubProperty,则属性SubClass.SuperProperty是否存在?来自何处?
答:存在,这个属性是从其父类那里继承来的。
35、什么是多重继承?Java是否支持多重继承?Java采取什么机制来替代多重继承?
答:一个子类有多个父类的情况称为多重继承,Java不支持多重继承,Java用实现接口的方法替代多重继承。 36、什么是属性(域)的隐藏?
答:子类重新定义一个与从父类那里继承来的属性完全相同的属性,称为属性的隐藏。
37、一个类里是否可以有同名属性共存的情况?是否最多只能有两个同名的属性。
答:子类重新定义父类的同名属性可以实现同名属性共存,若此子类的同名属性又被其子类所隐藏,可以有更多的同名属性共存。
38、一个类里有同名属性共存的情况下,如何分别操纵这些同名的属性?
答:使用子类定义的方法将操纵子类定义的属性;使用继承自父类的方法将操纵父类定义的属性。
39、子类重新定义与父类方法的方法头完全相同的方法,这种情况称为什么?此时子类中还能找到父类原来的方法吗?
答:这种情况称为方法的覆盖,
40、同名的不同方法共存的情况称为什么?如何区分这些同名方法? 答:这种情况称为方法的重载。不同类的同名方法用类名区分,同类的同名方法用形式参数数目、顺序和类型区分。 41、Java中的多态有哪些方式?
答:Java中的多态有两种方式,第一种是子类对父类方法的覆盖,第二种是同类中方法的重载。 42、?重载中,两个同名方法只要返回类型或参数列表不同即可互相分辨?这种说法是否正确?为什么?
答:不正确,仅仅返回类型不同不能区分同名方法,必须参数列表不同。 43、试解释this和super两个关键字,其中this指代的是一个类还是一个具体的对象?
答:this表示的是当前对象本身,即this代表了当前对象的一个引用。super表示的是当前对象的父类对象,是当前对象的直接父类对象的引用。
this指代的是一个具体对象。
44、子类SubClass重新定义并覆盖了父类SuperClass中的方法methodl(),如何使子类能够调用父类原先定义的方法methodl()? 答:super.methodl();
45、构造函数可以继承吗?子类继承父类的构造函数应遵循哪些原则?
答:子类可以继承父类的构造函数,构造函数的继承原则有:
- 5 -
(1)子类无条件地继承父类的不含参数的构造函数;
(2)如果子类自己没有构造函数,则它将继承父类的无参数构造函数作为自己的构造函数,如果子类自己定义了构造函数,则在创建新对象时,它将先执行继承自父类的无参数构造函数,然后再执行自己的构造函数。
(3)对于父类的含参数的构造函数,子类可以通过在自己构造函数中使用super关键字来调用它,但这个调用语句必须是子类构造函数的第一个可执行语句。
46、一个构造函数如何调用同类的其他构造函数?如何调用父类的构造函数? 答:在同类中使用this,调用父类的构造函数使用super。 47、什么是包?如何创建包?为什么要使用包?包物理地对应什么?
答:包是相关类的松散集合。使用package语句可以创建包。使用包可以方便相关的类共同工作,也方便其他包中的类引用它们。包物理地对应文件夹,其中应保存包中类的字节码文件。
48、试写出一个语句创建一个名为MyPackage的包,这个语句应该放在程序的什么位臵?
答:package MyPackage;
应该在程序第一句。
49、试写出引用MyPackage中所有类的语句和引用MyPackage包中的一个类MyClassl。
答:引用MyPackage中所有类的语句是 import MyPackage.*;
引用MyPackage包中的一个类MyClass的语句是import MyPackage.MyClassl;
50、什么是接口?它起到什么作用?
答:接口是一种特殊的类,是用来实现类间多重继承功能的结构。 51、接口中包括什么?接口中的各成员的访问控制符是一样的吗?是什么?
答:接口中包括常量与抽象方法。接口中的属性成员的访问控制符都是public static final,接口中的所有方法的访问控制符都是public abstract,都是公共方法。 52、创建接口使用什么关键字?接口可以有父接口吗?试书写语句创建一个名为 MyInterface的接口,它是继承了MySuperInterfacel和MySuperInterface2两个接口的子接口。
答:创建接口使用interface关健字,接口可以有父接口。
Interface MyInterface extends
MySuperInterfacel,MySuperInterface2 53、一个类如何声明实现一个接口?
答:在类头处使用implements关键字。
54、实现接口的类是否必须覆盖该接口的所有抽象方法?
答:如果这个类是非抽象类的话,就必须覆盖该接口的所有抽象方法。
- 6 -
55、实现接口的抽象方法时,方法头应该与接口中定义的方法头完全一致,但是有时需要增加一个public修饰符,为什么?
答:接口的抽象方法的访问限制符都己指定为public,所以类在实现方法时,必须显式地使用public修饰符,否则将被系统警告为缩小了接口中定义的方法的访问控制范围。
56、程序中的错误分为哪两类? 答:编译错误和运行错误。
57、对于编译错误和运行错误,分别应如何排除?
答:排除编译错误可以借助于编译器的错误提示,排除运行错误要使用断点、单步运行等用户控制流程的调试手段。
58、写出三个常见的系统定义的异常,它们都是什么类的子类?
答:三个常见的系统异常是InterruptedException,ClassNotFoundException ,IOException 。它们都是Exception类的子类。 59、用户程序如何抛出自己的异常?系统定义的异常如何抛出?
答:用户程序使用throw关键字抛出异常。系统定义的异常由系统在合适的时刻自动抛出。
60、阅读下面的程序并写出类MyClass3的所有成员,并写明它们定义自哪里。 classMyClassl {
private int proll; double prol2; ’ }
class MyClass2 extends MyClassl {
private double prol2; int pr021; }
class MyClass3 extends MyClass2 {
private int pr021; double pr031;
}
答:pr012(MyClassl),pr02l(MyClass3),pr03l(MyClass3)。 61、阅读下面的程序片段并回答问题。 classClassl
{
int fieldl; int field2;
- 7 -
void methodl() {
System.out.println(?我是Classl的第一个方法?); }
void method2() {
System.out.println(?我是Classl的第二个方法?); } }
class Class2 extends Classl {
int field Childl; void methodChildl() {
System.out.println(?我是Class2的第一个方法?); } }
(1)C1assl被称为是C1ass2的什么? C1ass2被称为是C1assl的什么?
(2)Classl有哪些方法和属性?Class2有哪些方法和属性?其中哪些与C1assl的方法和属性有关,是什么关系? 答:(1)父类,子类。
(2)Classl包括属性fieldl和field2,方法methodl和method2;Class2包括自身定义的属性fieldChildl和自身定义的方法methodChildl,以及它从父类继承来的属性与方法(本题中包括父类的所有属性和方法)。 62、阅读下面的程序片段并回答问题。 class Classl {
int fieldl;
private int field2; void methodl() {
System.out.println(?我是Classl的第一个方法?); }
void method2() {
System.out.pdntln(?我是Classl的第二个方法?); } }
- 8 -
共分享92篇相关文档