zoukankan      html  css  js  c++  java
  • Java 多态

    Feeder feeder=new Feeder();
    Animal animal=new Dog();
    Food food=new Bon();
    feeder.feed(animal,food);//给狗喂肉狗骨头
    anmal=new Cat();
    foof=new Fish();
    feeder.feed(animal,food);给猫喂鱼

    如图把引用变量转换为子类类型,则称为向下转型,如果把引用变量装换为父类类型,则称为向上转型。在进行引用变量的类型转换时会受到各种限制。而且在通过引用变量访问他所引用的实例的静态属性。静态方法。实例属性。实例方法,以及从父类中继承的方法和属性时,Java会用不同的绑定机制。

    class Base
    {
    String var="BaseVar";           //实例变量
    static String staticvar="StaticBaseVar"  //静态变量
    
    
    void metod()           //实例方法
    system.out.Println("Base method");
    
    }
    static void staticMethod()  //静态方法
    {
    syso.out.printIn("Static Base method");
    }
    }
    public class Sub extends Base
    {
    String var="Subvar";  
    static String staticVar="staticSubvar";
    
    void method()  //覆盖父类的method()方法
    {
    Sysotem.out.printIn("Static sub method");
    }
    static void staticMethod()  //隐藏父类的staticMethod()方法
    {
    system.out.printin("static sub method");
    }
    String subVar="Var only belonging to  sub";
    void subMethod()
    {
    System.out.pritn("Method only belonging to sub");
    }
    public static void main(String args[])
    {
    Base who=new Sub();                  //who被声明为Base类型,引用Sub
    System.out.printin("who.var"+who.var);  //打印Base类的var变量
    System.out.printIn("who.staticVar"+wh.saticVar); //打印Base类staticVar变量
    who.metod();             //打印Sub实例的method()方法
    who.staticMethod();        //打印Base类的staticMethod();
    }
    }

  • 相关阅读:
    css实现水平/垂直居中效果
    Mac 下用homebrew安装配置MongoDB
    阿里云ECS搭建node/mongodb开发环境及部署
    阿里云首次安装和部署nginx
    前端学习借鉴目录
    040.[转] 对于程序框架的理解
    039.[转] 基于 Kubernetes 和 Spring Cloud 的微服务化实践
    038.[转] JVM启动过程与类加载
    037.[转] springboot 配置多个数据源
    036.[转] JNDI 学习
  • 原文地址:https://www.cnblogs.com/xiaoyu1997/p/5964927.html
Copyright © 2011-2022 走看看