JAVA基础---多态
概念:
多态是以继承为基础,通过重写父类方法达到不同子类对同个方法有不同表现形式。
多态问题与解答:
1、如何在重写方法中调用父类原方法
答:通过super调用,super区别于this,可调用父类方法与变量
2、子类实例直接赋值父类引用与通过强制类型转换赋值有没区别
答:无区别
3、子类对象拥有与父类对象同类型同名称变量,各自方法调用该变量有无影响。
答:无影响,子类方法直接调用自身变量,可通过super调用父类对象变量。父类方法调用的变量i永远是父类自身的变量i。
代码实战:
public class demo {
int i=0;
public void test(){
System.out.println("parent"+"父类实例调用的变量不会被子类覆盖:"+i);
}
public static class demochild extends demo{
int i=1;
public void test() {
super.test();
System.out.println("child"+"子类调用变量为子类的:"+i+",父类变量通过super调用: "+super.i);
}
}
public static void main(String[] args) {
demo o1=(demo) new demochild();
demo o2=new demochild();
o1.test();
System.out.println("========");
o2.test();
}
}
实战结果: