Java面向对象---多态

多态的体现

1、方法的重载与重写

2、对象的多态性

对象的多态性

向上转型

程序会自动完成

         父类  父类对象 = 子类实例

向下转型

强制类型转换(向下转型必须要先向上转型,再向下转型

         子类  子类对象 = (子类)父类实例

         Eg:A a=new B;B b=(B)a;

多态性的使用

一个简单的例子:

class A {
  public void tell(){}      
}

class B extends A {
  public void tellB(){}
}

class C extends A {
  public void tellC(){}
}

public class Demo {

  public static void main(String args[]){
    say(new B());
    say(new C());
  }

  public void say(A a) {
    a.tell();
  }
}

说明:如果不使用多态,则需要重载say方法,有几个对象调用就需要重载几次。而这样的写的话,则会产生更过的冗余代码。Demo代码如下:

public class Demo{
  
public static void main(String args[]){     say(new B());     say(new C());   }   public void say(B b){     b.tell();   }   public void say(C c){     c.tell();   } }

instanceof关键字

作用

判断一个实例是否是一个类的对象,返回boolean

示例代码如下:

A a1 = new A();
System.out.printeln(a1 instanceof A);
System.out.printeln(a1 instanceof B);
A a2 = new B();
System.out.printeln(a2 instanceof A);
System.out.printeln(a2 instanceof B);

执行结果:
true
false
true
true
原文地址:https://www.cnblogs.com/xiaobaizhiqian/p/7624662.html