当前位置:编程学习 > JAVA >>

很重要的java题目

(6) 下面2个文件位于相同目录下,编译运行后会出现的情况是()。B
//File P1.java
package MyPackage;
class P1{
void afancymethod(){
        System.out.println("What a fancy method");
        }
}
//File P2.java
public class P2 extends P1{
    public static void main(String argv[]){
 P2 p2 = new P2();
 p2.afancymethod();
    }
}
 A、2个文件都可以编译,P2运行输出“What a fancy method”
 B、2个文件P1编译成功,P2编译时报错误
 C、2个文件都可以编译,P2运行时报错误
 D、2个文件都不能编译
求详细解析 --------------------编程问答-------------------- B,同一个目录,但不在同一个包里面,所以P2编译的时候找不到p1,导致编译出错.. --------------------编程问答-------------------- void afancymethod()你这方法不加修饰符的话 是一种默认的访问修饰符 ,只能在一个包下面访问,所以你p1 p2不在同一个包下面 是不能访问的 --------------------编程问答-------------------- B~~~~~~~~~~~~~~`` --------------------编程问答-------------------- 刚刚回答了,怎么题目一模一样?而且还不是同一个人?我在回答一下吧~

P1是完成编译通过的。但是P2在继承P1是就会出现问题了,明显编译不通过。。。

修改
1.在P2第一行,编个 :import MyPackage.P1;
2.修改P1类权限
public class P1
public void afancymethod()

就可以了,结果是:What a fancy method --------------------编程问答--------------------   选选选选选   B --------------------编程问答--------------------
引用 4 楼  的回复:
刚刚回答了,怎么题目一模一样?而且还不是同一个人?我在回答一下吧~

P1是完成编译通过的。但是P2在继承P1是就会出现问题了,明显编译不通过。。。

修改
1.在P2第一行,编个 :import MyPackage.P1;
2.修改P1类权限
public class P1
public void afancymethod()

就可以了,结果是:What a fancy ……


+1. --------------------编程问答-------------------- 学习了
引用 4 楼  的回复:
刚刚回答了,怎么题目一模一样?而且还不是同一个人?我在回答一下吧~

P1是完成编译通过的。但是P2在继承P1是就会出现问题了,明显编译不通过。。。

修改
1.在P2第一行,编个 :import MyPackage.P1;
2.修改P1类权限
public class P1
public void afancymethod()

就可以了,结果是:What a fancy ……
--------------------编程问答-------------------- 楼上正解 --------------------编程问答-------------------- 其实就是在P2继承P1的时候,由于不在同一个包下面,而访问受限,所以只要在楼上是正解。。。 --------------------编程问答-------------------- gaoshouruyu高手如云啊
--------------------编程问答-------------------- 选B、2个文件P1编译成功,P2编译时报错误。
分析:(1)P1类在MyPackage包下,P2类在默认包下,两个类不再同一包下,在P2类中继承P1,而P2中并没有引入MyPackage包下的P1类,编译出错。
(2)P1类是没有声明称public访问权限,默认是protected访问权限;即使在P2类中引入P1类,没发现不了,只能被同一包中的类访问。

Thank you in advance for giving me credits。 --------------------编程问答-------------------- 选B、2个文件P1编译成功,P2编译时报错误。
分析:(1)P1类在MyPackage包下,P2类在默认包下,两个类不再同一包下,在P2类中继承P1,而P2中并没有引入MyPackage包下的P1类,编译出错。
(2)P1类是没有声明称public访问权限,默认是protected访问权限;即使在P2类中引入P1类,没发现不了,只能被同一包中的类访问。

Thank you in advance for giving me credits。 --------------------编程问答--------------------
引用 12 楼  的回复:
选B、2个文件P1编译成功,P2编译时报错误。
分析:(1)P1类在MyPackage包下,P2类在默认包下,两个类不再同一包下,在P2类中继承P1,而P2中并没有引入MyPackage包下的P1类,编译出错。
(2)P1类是没有声明称public访问权限,默认是protected访问权限;即使在P2类中引入P1类,没发现不了,只能被同一包中的类访问。

Thank you in adv……
 
默认是default 。不是protected。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,