读书人

java默认构造函数的访问权限,该怎么解

发布时间: 2012-05-12 15:39:31 作者: rapoo

java默认构造函数的访问权限
一道SCJP题:

Java code

class A {
A() {}
}

class B extends A {

}



Which two statements are true? (Choose two)

A. Class B's constructor is public.
B. Class B's constructor has no arguments.
C. Class B's constructor includes a call to this().
D. Class B's constructor includes a call to super().
答案是:BD

我想问:
默认的构造函数是public还是friendly?为什么A不对?
我试了下,把以上class A跟class B放在一个包里,在另外个包里new B(),可以正常运行啊,如果是friendly不是只有包的访问权限么。但如果给B加上构造函数:B(){}。则在包外不可以用B()。提示不可见。

[解决办法]
答案没有问题。
不知道你的相关测试代码和类文件名是否和题意完全相符!
[解决办法]
恩。就是这样的。
[解决办法]
类名是public的,则编译器自动生成的构造器是public的。
但题目中类名不是public的……
[解决办法]
http://blog.csdn.net/ZangXT/archive/2009/05/19/4202036.aspx

读书人网 >J2SE开发

热点推荐