写在前面,实在是能力有限,写这个主要是因为自己的基础太差了,方便在期末的时候进行复习......所以说,可能还是有错误。仅供参考吧。
一、判断部分
1、子类不继承父类的构造方法。T
子类不能继承父类的构造方法,只能继承其构造方法
2、类在实现接口方法时必须给出方法体,并且一定要用public来修饰。T
接口中的方法默认是public abstract方法,所以需要public修饰
3、一个类只能有一个父类,但一个接口可以有一个以上的父接口。T
同时,一个类可以有多个接口!
4、接口中的方法默认都是静态的。F
这里,接口中的方法有两大类:默认方法和静态方法,所以不对
二、选择部分
1、private访问权限
private:同一个类
默认:同一个类,同一个包
protected:不同包的非子类,同一个包,同一个类
public:在前面的基础上加上不同包的非子类
2、缺省构造方法:没有定义,这个时候会默认一个(也就是已经定义过了就不会有),同时,仅仅对于这个类而言。
3、const是C语言的常量定义关键字,在Java里面应该使用final
4、
下面是People和Child类的定义和构造方法,每个构造方法都输出编号。在执行new Child("mike")的时候都有哪些构造方法被顺序调用?请选择输出结果 ( )
class People { String name; public People() { System.out.print(1); } public People(String name) { System.out.print(2); this.name = name; } } class Child extends People { People father; public Child(String name) { System.out.print(3); this.name = name; father = new People(name + ":F"); } public Child(){ System.out.print(4); } }
答案:132,运行出结果
一般是先父类的默认构造方法,然后子类的构造方法,最后父类的构造方法
5、
类Teacher和Student是类Person的子类,下面的代码中最后一句语句的运行结果是( ).
Person p; Teacher t; Student s; //p,t and s are all non-null. if(t instanceof Person) {s=(Student)t;} A.编译时正确,但运行时错误 B.将构造一个Student对象 C.表达式是错误的 D.表达式是合法的
答案:C,表达式有误,两个类是无关的,无法相互转化。
6、内部类不可访问外部类的方法变量