• Java 动静态绑定


    今天的内容:

    动态绑定:可以使多态更加灵活。

    向上转型:父类对象的引用指向子类对象。隐式转换。Father f = new Son();

    向下转型:子类对象的引用指向父类对象。需显式转换。Father f = new Son();  Son s = (Son) f;

    动态绑定:当虚拟机调用一个实例方法时,他会基于对象实际的类型来选择所调用的方法。是多态的一种。具体表现在向上转型中。因为只有在运行时才知道具体运行的是哪个实例。(在运行时绑定)

    public class Father{
        public void say(){
            System.out.println("This is Father");
        }
        
        public static void main(String[] args){
            Father f = new Son();
            f.say();
        }
    }
    
    class Son extends Father{
        public void say(){
            System.out.println("This is Son");
        }
    }

    输出: 

    静态绑定: 在编译时绑定, 只有private、static、final是静态绑定的

    public class Father{
        
        
        public void say1(){
            System.out.println("This is Father 1");
        }
        
        public void say2(){
            System.out.println("This is Father 2");
        }
        
        public static void main(String[] args){
            Father f = new Son();
            System.out.println("这是动态绑定 f.say1()");
            f.say1();
            System.out.println("这是静态绑定 f.say2()");
            f.say2();
        }
    }
    
    class Son extends Father{
        
        public void say1(){
            System.out.println("This is Son 1");
        }
        public static void say2() {
            System.out.println("This is Son 2");
        }
        
    }

    输出:

     明天的打算:继续学习

    问题:无

  • 相关阅读:
    Django 安装
    node上的__dirname和./的区别
    Mysql存储之ORM框架SQLAlchemy(一)
    selenium只打开一个浏览器窗口
    Mysql存储之原生语句操作(pymysql)
    汽车之家反爬
    javascript反混淆之packed混淆(一)
    python近期遇到的一些面试问题(三)
    [转载]关于python字典类型最疯狂的表达方式
    .net爬虫了解一下
  • 原文地址:https://www.cnblogs.com/MXming/p/13382488.html
Copyright © 2020-2023  润新知