由于需求最近开始使用java,在通读java的过程中,把一些思考记录下来作为面试题。
多态
1. Circle继承Shape,当Shape s = new Circle();调用s.turn()会产生何种结果,调用s.draw()会产生何种结果?答:1 s.turn()无法编译过去,因为Shape没有turn方法 2 s.draw()会产生Circle draw.因为此类有多态性。
public class Shape {
public void draw() {System.out.println("Shape draw!");}
}
class Circle extends Shape {
public void draw() {System.out.println("Circle draw!");}
public void turn() {System.out.println("Circle turn!");}
}
public class HelloWorld{
public static void main(String[] args) {
Shape s = new Circle();
s.turn();
s.draw();
System.out.println("Hello World!");
}
}
2. 请根据代码写出运行结果
public class Shape {
public void pinit() {draw();}
public void draw() {System.out.println("Shape draw!");}
}
class Circle extends Shape {
public void draw() {System.out.println("Circle draw!");}
}
public class HelloWorld{
public static void main(String[] args) {
Shape s = new Circle();
s.pinit();
}
}