Java 多太性的体现:
1. 方法的重载和重写
2. 对象的多态性
对象的多态性:
向上转型:程序会自动完成
父类 父类对象 = 子类实例
向下转型:强制类型转换
子类 子类对象 = (子类对象)父类实例
代码如下:
package hello;
class A{
public void tell1(){
System.out.println(" A -- tell1 ");
}
public void tell2(){
System.out.println(" A -- tell2 ");
}
}
class B extends A{
public void tell1(){
System.out.println(" B -- tell1 ");
}
public void tell3(){
System.out.println(" B -- tell3 ");
}
}
public class PolDemo01 {
public static void main(String[] args) {
//向上转型
//父类 父类对象 = 子类实例
B b = new B();
A a = b;
a.tell1();//调用 X 中的 tell1,因为重写
a.tell2();
//向下转型
//子类 子类对象 = (子类对象)父类实例
A a2 = new B();//先完成向上转型
B b2 = (B)a2;
b2.tell1();
b2.tell2();
b2.tell3();
}
}
多态性的应用
代码如下:
package hello;
class A1 {
public void tell1(){
System.out.println("tell1");
}
}
class B1 extends A1 {
public void tell2(){
System.out.println("tell2");
}
}
class C1 extends A1 {
public void tell3(){
System.out.println("tell3");
}
}
public class Demo02 {
public static void main(String[] args) {
say(new B1());//实例化子类,调用父类的方法
say(new C1());
}
public static void say(A1 a1){
a1.tell1();
}
}