- 给定如下java代码,编译时会在哪行( )出现错误。
class Demo1{ }
class Demo2 extends Demo1{
public static void main(String args[]){
Demo1 d1=new Demo2 () ;//第一行
Demo2 demo2=new Demo2 () ;//第二行
Demo1 d2=new Demo1() ;//第三行
Demo2 demo3=new Demo1() ;//第四行
}
}
解:需要强转 Demo2 demo3=(Demo2 ) new Demo1(); 当子类引用指向父类实例需要强转
2.给定Java代码,运行编译后,输出结果是()
class Parent{
public void count() {
System.out.println(10%3) ;
}
}
public class Test extends Parent{
public void count() {
System.out.println(10/3) ;
}
public static void main(String args[]) {
Parent p = new Test() ;
p.count() ;
}
}
解答:更上题一样,考的是多态的转型,父类引用指向子类实例,向上转型,那么p所调用的方法是子类重写的方法,如果p调用的是成员变量,则是父类的成员变量
3.打印结果为:
public