zoukankan      html  css  js  c++  java
  • 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中,每个方法都有一个指向它的指针。
  • 相关阅读:
    第七章 第一月:开始 第二周:链接建设(2)
    基础篇 第四节 项目进度计划编辑 之 日历
    VSS2005 使用说明
    删除存储过程
    基础篇 第四节 项目进度计划编辑 之 任务关联性设定
    转载: input 的css技巧
    js: js判断回车键
    一个简单邮件发送类
    转载: php发送邮件原理
    css 小经验: 重构css的优化与技巧
  • 原文地址:https://www.cnblogs.com/031602523liu/p/8654188.html
Copyright © 2011-2022 走看看