zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    2017/3/27 morning
    2017/3/24 afternoon
    2017/3/24 morning
    2017/3/21 afternoon
    2017/3/21 morning
    2017/3/20 afternoon
    2017/3/20 morning
    2017/3/16 afternoon
    2017/3/16 morning
    2017/3/15afternoon
  • 原文地址:https://www.cnblogs.com/xiaobaizhiqian/p/7624662.html
Copyright © 2011-2022 走看看