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

    一、概念

    多态:同一份代码(方法)可以毫无差别的作用在不同的类型上或者说同一份代码(方法)作用在不同的类型上会产生不同的行为。在java中多态是基于类继承或接口实现而实现的。

    二、案例

    public class Shape{
        public void draw(){
            
        }
    }
    
    public class Circle extends Shape{
        public void draw(){
            System.out.println("circle draw.");
        }
    }
    
    public class Square extends Shape {
        public void draw() {
            System.out.println("Square draw.");
        }
    }
    
    public class Tools {
        public void drawShape(Shape shape){
            shape.draw();
        }
    }
    

    上述drawShape方法只与基类进行通信。在上述示例中draw方法的调用就是多态的,因为同一个方法draw可以产生不同的行为。对draw方法的所有调用都是通过动态绑定进行的。

    动态绑定:方法的调用是在运行时确定调用的主体(对象)的。即一个对象在编译期时无法知道自己时基类的对象还是子类的对象。例如上述的drawShape方法的参数shape在编译期是无法知道其是Shape的对象还是Circle或Square的对象。简单的说就是一个方法在运行时才确定其是那个对象的方法。

    在java中只有普通方法的调用时多态的。对于域和静态方法的调用并不是多态的。

    对任何域的访问都将在编译器进行解析,就算基类和子类有相同名称的域,调用该域永远访问的时类对象自己的域。

  • 相关阅读:
    学习第五天
    第四天学习
    学习第三天
    学校键盘键位设置
    学习第二天
    fatal error C1902: 程序数据库管理器不匹配;请检查安装解决
    ffmpeg遇到inttypes.h和UINT64_C
    <ZZ>linux yum命令详解
    <ZZ>Linux rpm 命令参数使用详解[介绍和应用]
    转:Windows下WSH/JS实现SVN服务器钩子脚本阻止提交空日志信息和垃圾文件
  • 原文地址:https://www.cnblogs.com/yourblog/p/11361336.html
Copyright © 2011-2022 走看看