• Java 动态绑定和多态


    动态绑定和多态

    • 动态绑定是指:"在执行程序期间(而非编译期间),判断引用所指对象的实际类型,调用其相应的方法。"
    • 动态绑定(多态)存在的条件
      1. 要有继承。
      2. 要有重写。
      3. 父类引用指向子类对象。
    • 当条件满足时,当调用父类里面重写的方法时,根据实际的对象来调用方法。
    • 例子
    class Animal
    {
    	private String name;
    	Animal(String name)
    	{
    		this.name = name;
    	}
    	public void enjoy()
    	{
    		System.out.println("叫声。。。。。");
    	}
    }
    class Cat extends Animal
    {
    	private String eyescolor;
    	Cat(String name,String eyescolor)
    	{
    		super(name);
    		this.eyescolor = eyescolor;
    	}
    	public void enjoy()                 //重写enjoy方法
    	{
    		System.out.println("猫叫声。。。。。");
    	}
    }
    class Dog extends Animal
    {
    	private String furcolor;
    	Dog(String name,String furcolor)
    	{
    		super(name);
    		this.furcolor = furcolor;
    	}
    	public void enjoy()                 //重写enjoy方法
    	{
    		System.out.println("狗叫声。。。。。");
    	}
    }
    class Lady
    {
    	private String name;
    	private Animal pet;
    	Lady(String name,Animal pet)
    	{
    		this.name = name;
    		this.pet = pet;
    	}
    	public void myPetEnjoy()
    	{
    		pet.enjoy();                   //调用时根据pet指向的实际类型来调用enjoy方法
    	}
    }
    public class Main
    {
    	public static void main(String args[])
    	{
    		Cat c = new Cat("catname","blue");
    		Dog d = new Dog("dogname","black");
    		Lady l1 = new Lady("l1",c);
    		Lady l2 = new Lady("l2",d);
    		l1.myPetEnjoy();
    		l2.myPetEnjoy();
    	}
    	
    }
    输出:
    猫叫声。。。。。
    狗叫声。。。。。
    
    
    

    Java中方法的存储方式


    • Java中的方法储存在Code segment中,每个方法都有一个指向它的指针。
  • 相关阅读:
    弄懂JDK、JRE和JVM到底是什么
    精选Java面试题(二)
    精选Java面试题
    HttpPost请求将json作为请求体传入的简单处理方法
    Python在for循环中更改list值的方法
    vue 图片加载失败时,加载默认图片
    移动端,进入页面前空白,添加加载状态
    img 失效时 显示默认图片
    vue 全局组件的引用
    页面到达底部,加载更多
  • 原文地址:https://www.cnblogs.com/031602523liu/p/8654188.html
Copyright © 2020-2023  润新知