Which two are valid in a class that extends class A? (Choose two) A. public int method1(int a, int b) { return 0; } B. private int method1(int a, int b) { return 0; } C. private int method1(int a, long b) { return 0; } D. public short method1(int a, int b) { return 0; } E. static protected int method1(int a, int b) { return 0; }------------------------------------ 1. public class Outer{ 2. public void someOuterMethod() { 3. // Line 3 4. } 5. public class Inner{} 6. public static void main( String[]argv ) { 7. Outer o = new Outer(); 8. // Line 8 9. } 10. } Which instantiates an instance of Inner? A. new Inner(); // At line 3 B. new Inner(); // At line 8 C. new o.Inner(); // At line 8 D. new Outer.Inner(); // At line 8//new Outer().new Inner()
---------------------------------------
这两个题应该怎么解答 ,请给出原因
---------------------------------------
这两个题应该怎么解答 ,请给出原因
2 D
2。 就这样的 因为内部类就在一个类的内部
D中的返回值0是int类型,不是short2.内部类访问外部类需要 new Outer, new Outer访问Inter类只要用.就可以访问
private的方法不能被继承,static方法不能被override,所以选A,D
第二题什么意思?在Outer中实例化new Inner()就可以.如果在其他类中实例化Outer的内部类
就要new Outer().new Inner()
不清楚楼上的理由,请解释一下.
1. class A { 2. protected int method1(int a, int b) { return 0; } 3. }
Which two are valid in a class that extends class A? (Choose two) A. public int method1(int a, int b) { return 0; } B. private int method1(int a, int b) { return 0; } C. private int method1(int a, long b) { return 0; } D. public short method1(int a, int b) { return 0; } E. static protected int method1(int a, int b) { return 0; } ------------------------------------ 没贴全也可以答,太强了。呵呵我对题目的理解是:哪两个函数在b类中有效,b类继承于a类D. public short method1(int a, int b) { return 0; } ----------------------------------------------------这个无效吗? 多态只检测函数名称,和参数的类型和个数,满足多态的条件呀?他为什么不效?
1. 只有public 和 pretected 可以被继承
2。 就这样的 因为内部类就在一个类的内部-------------------
第二题明白了
第二题A. 选项D后面注释中的写法是对的。
第二道题 我选择 AB , 因为我看到《thinking in java》中的好多代码都是这样写的,没有任何问题。
关于D我想是错的 new Outer.Inner() 在这里,Outer应该是指一个包。这是我的理解,我得亲自动手试一下。
这个叫方法的重写,D中只有返回类型不同与子类,不符合方法重写的要求。另外我不确定D这么写是否正确,我认为返回值0是int类型,而D中的返回值是short类型,有环境的可以试一下.
重写就是完全覆盖父类的方法(从返回类型到名字到参数都一模一样),唯一可以不同的就是,访问修饰符要>=父类那个方法的访问修饰符还有D那个return 0返回的是个int,而返回类型确实short肯定编译通不过撒
public short m(int a, int b){return 0;}
没有问题,甚至可以是byte,char这里出错的原因还是重写的问题,重写的话返回类型必须与要覆盖的方法一样
D. TestA 中的 method1(int,int) 无法覆盖 A 中的 method1(int,int);正在尝试使用不兼容的返回类型。
E. TestA 中的 method1(int,int) 无法覆盖 A 中的 method1(int,int);覆盖的方法为静态。
C. 软件包 o 不存在
D. 无法从静态上下文中引用非静态 变量 this D后注释掉的写法是正确的。
第二题选a