1.多态创建的是父类对象还是子类对象
答:对象是子类对象
验证代码:
public class Test {
public static void main(String[] args) {
Animal a = new Cat(); // 向上转型
a.eat();
if (a instanceof Cat) {
System.out.println("cat类");
} else if (a instanceof Animal) {
System.out.println("Animal类");
}
}
}
class Animal {
public void eat() {
System.out.println("吃");
}
}
class Cat extends Animal {
public void eat() {
System.out.println("吃鱼");
}
}
结果输出:
2.Java中方法的调用方式
(1)非静态方法的调用
非静态方法就是没有 static 修饰的方法,非静态方法通过对象进行调用。
public class InvokeMethod{
public static void main(String[] args){
InvokeMethod in = new InvokeMethod();
in.t1();
}
public void t1(){
System.out.printfln("t1");
}
(2)静态方法的调用
静态方法就是用 static 修饰的方法,静态方法的调用是通过类名来调用。
public class InvokeMethod{
public static void main (String[] args){
InvokeMethod.t2();
}
public static void t2(){
System.out.println("static t2....");
}
}