1. class A {
2. A() { }
3. }
4.
5. class B extends A {
6. }
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().个人认为A,B,D都是对的。为什么只有两个答案呢?
2. A() { }
3. }
4.
5. class B extends A {
6. }
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().个人认为A,B,D都是对的。为什么只有两个答案呢?
A.java
package packa;
class A
{}
B.java
package packb;
import packa.A;
class B
{
public static void main(String[] args)
{
A a=new A();
}
}
编译,运行是ok的。
可是把A类写成
class A
{
A(){}
}
就会出现A() is not public in packa.A; cannot be accessed from outside package
的错误提示。
这不是说明默认的A类构造函数是public的吗?
希望大家继续帮忙解惑!
一时匆忙,A类前面忘了写public。
A.java应该是这样。
package packa;
public class A
{}
等待大家回复!
public class A
{}反编译后的代码为:
public class A extends java.lang.Object
{
public A(){}
}如果是class A
反编译后为:
class A extends java.lang.Object
{
A(){}
}楼主做测试的时候类的访问权限是public的,所以觉得题目答案会有问题,但是题目中的类A和类B的访问权限都是默认的,所以其生成的构造函数的访问权限也是默认的。:)
class A
{
A(){}
}
就会出现A() is not public -----------------------------------------很高兴大家的关注;
A.java
package packa;
class A
{}
B.java
package packb;
import packa.A;
class B
{
public static void main(String[] args)
{
A a=new A();
}
}
编译,运行是ok的。
-------------------------
注意,你这里的class A中没有写构造函数!
那么
没有写----> OK
然后你说:可是把A类写成
class A
{
A(){}
}
就会出现A() is not public in packa.A; cannot be accessed from outside package
的错误提示。
---------------------
注意,你这里的写了构造函数,出现A() is not public
这样能证明题目中
1. class A {
2. A() { }
3. }
中的A()是PUBLIC....??
你这样最多只能证明:
1.class A {
-------->PUBLIC...!
}
2. class A {
A() { } -------->不是PUBLIC...!
}