zoukankan      html  css  js  c++  java
  • 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");
        }
        
    }

    输出:

     明天的打算:继续学习

    问题:无

  • 相关阅读:
    WPF:ListView 分组合并
    WPF:ListView 分页
    SQL
    多线程27 -- ReentrantLock
    String 对象常用方法及属性 详细介绍
    js中Array 对象方法 详细介绍
    js--运算符与或非 及 if判断条件、隐式转换 介绍
    js-函数表达式和函数声明的区别
    js预编译案例分析
    js--万物皆对象
  • 原文地址:https://www.cnblogs.com/MXming/p/13382488.html
Copyright © 2011-2022 走看看