`
i拾贝
  • 浏览: 30732 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java动态绑定和多态

    博客分类:
  • java
阅读更多

java动态绑定和多态

动态绑定,也叫多态。

TestPolymoph.java

//java动态绑定和多态
//动态绑定,也叫多态。
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 n,String c) {
		super(n); 
		eyesColor = c;
	}
	
	public void enjoy() {
	System.out.println("猫叫声......");
	}

}

class Dog extends Animal {
	private String furColor;
	
	Dog(String n,String c) {
		super(n); 
		furColor = c;
	}

	public void enjoy() {
		System.out.println("狗叫声......");
	}
}

class Bird extends Animal {
	Bird() {
		super("bird");
	}
	public void enjoy() {
		System.out.println("鸟叫声......");
	}
}

class Lady {
	private String name;//姓名
	private Animal pet;//宠物Animal类
	
	Lady(String name,Animal pet) {
		this.name = name; 
		this.pet = pet;
	}
	
	//我的宠物高兴了
	public void myPetEnjoy(){
		pet.enjoy();
	}
}

/*
	动态绑定总结:
	1.要有继承
	2.要有重写
	3.父类引用指向子类对象
*/
public class TestPolymoph {
	public static void main(String args[]){
		Cat c = new Cat("catname","blue");
		Dog d = new Dog("dogname","black");
		Bird b = new Bird();
		Lady l1 = new Lady("l1",c);
		Lady l2 = new Lady("l2",d);
		Lady l3 = new Lady("l3",b);
		
		//根据实际的对象来确定调用的方法,不是通过引用类型来确定的,不然就就一定调用Animal中的enjoy()方法,
		l1.myPetEnjoy();
		l2.myPetEnjoy();
		l3.myPetEnjoy();
	}
}

 

分享到:
评论

相关推荐

    java的编译时多态和运行时多态

    Java 编译时多态和运行时多态 Java 编译时多态和运行时多态是 Java 语言中两个重要的概念,它们都是多态性的实现方式,但它们在实现机制和应用场景上有所不同。 编译时多态 编译时多态是指在编译期根据参数列表的...

    Java动态绑定和内联

    Java动态绑定和内联是Java编程中的两个关键概念,它们对于理解Java的面向对象特性,尤其是多态性和性能优化有着重要的作用。 动态绑定,又称晚期绑定或运行时绑定,是Java语言的一个核心特性。它指的是在运行时而非...

    Java语言程序设计ppt第十一章(继承和多态)

    本章节主要讲解Java语言中的继承和多态机制,包括继承的定义、继承的应用、多态性和动态绑定等知识点。 一、继承的定义 继承是一种机制,允许一个类继承另一个类的属性和方法,从而避免代码的冗余和提高代码的重用...

    java继承和多态PPT教案学习.pptx

    继承让我们可以构建一个层次化的类结构,通过子类复用和扩展父类的功能,而多态和动态绑定则让我们的程序更加灵活,能够适应不断变化的需求。正确理解和运用这些概念,能够帮助我们编写出更加可维护、可扩展和健壮的...

    java中多态的内存分析

    多态性分为编译时多态和运行时多态,其中运行时多态是Java中最常见的形式,也称为动态绑定。在深入探讨Java中多态的内存分析之前,我们需要先理解一些基本概念。 首先,了解Java内存模型至关重要。Java程序运行时...

    four_java继承封装和多态_four_againgpg_

    在Java中,多态有两种主要形式:静态多态(编译时多态)和动态多态(运行时多态)。静态多态主要通过方法重载(相同方法名但参数列表不同)实现,而动态多态则是通过方法重写(子类继承父类并覆盖其方法)实现。当...

    C++和Java多态的区别

    - **动态绑定**:Java中的方法调用分为静态绑定(如静态方法调用)和动态绑定(如实例方法调用)。动态绑定是指在运行时根据对象的实际类型来决定调用哪个方法。 - **方法调用指令**:JVM提供了四种方法调用指令,...

    Java 经典Javapeople继承与多态

    在Java编程语言中,继承和多态是面向对象编程(OOP)的两个核心概念,它们极大地增强了代码的重用性和灵活性。让我们深入探讨一下这两个关键知识点。 首先,继承是面向对象编程的一个重要特性,它允许一个类(子类...

    Java继承和多态详解及其综合应用

    文章还包括了一些进阶技巧,如接口与抽象类的区别与使用、动态绑定与静态绑定、Java反射与Lambda表达式的结合等。并给出了最佳实践建议。 适合人群:具备一定Java编程基础的开发者。 使用场景及目标:适用于初学者和...

    Java中的多态.pptx.pptx

    - **性能影响**:由于动态绑定(即运行时确定调用哪个方法),多态可能导致运行时性能轻微下降,但这通常不会成为实际应用中的瓶颈。 - **调试复杂**:多态可能导致调试过程复杂,因为调用的是哪个子类的方法可能...

    java多态的总结

    运行时多态则基于方法的重写(Overriding),子类可以重写父类的方法,当使用父类引用指向子类对象时,如果调用了被重写的方法,那么在运行时会根据实际的对象类型来执行子类的方法,这就是动态绑定。 理解多态的...

    Java多态中动态绑定原理解析

    Java多态中动态绑定原理解析是Java面向对象程序设计中非常重要的特性,它让程序拥有更好的可读性和可扩展性。在Java中,多态是发生在继承关系中的,需要子类重写父类的方法。父类类型的引用指向子类类型的对象。动态...

    Java语言继承中多态的机理分析.pdf

    Java语言的继承和多态机理是面向对象程序设计的重要组成部分,它不仅仅是编程语言中的一个特性,更是实现软件复用、提高开发效率、降低系统复杂度的关键技术。在Java中,继承允许子类继承父类的属性和方法,而多态则...

    java 多态 经典讲解

    多态的核心在于方法绑定,具体分为**静态绑定**和**动态绑定**。静态绑定发生在编译时,如构造函数调用和非虚方法调用。动态绑定则发生在运行时,当调用虚方法时,JVM会查找实际对象类型中的方法实现。这意味着,...

    Java多态中的动态绑定与静态绑定

    大家可能都知道Java面向对象的三大特性,封装,继承,多态,其中动态绑定就与多态有关,那什么是动态绑定呢? 1.动态绑定(auto binding):也叫后期绑定,在运行时,虚拟机根据具体对象的类型进行绑定,或者说是...

    Java零基础-多态.md

    这里体现了多态的核心思想:虽然传递给`makeAnimalSound`的是`Animal`类型的引用,但实际上调用的是子类重写的方法,实现了动态绑定。 #### 注意事项和规则 1. **方法重写** - 方法重写必须是在继承关系中进行。...

    深入Java核心Java中多态的实现机制.pdf

    3. **动态绑定(Dynamic Binding)**:在Java中,方法调用是在运行时决定的,而不是在编译时。这意味着,只有在运行时,Java虚拟机才能确定调用哪个具体的方法实现,即晚绑定或虚方法调用。 4. **接口实现**:除了...

    java基础_多态

    当使用父类引用指向子类对象时,调用的是子类重写后的版本,这就是动态绑定或晚期绑定。例如: ```java class Animal { void sound() { System.out.println("Animal makes a sound"); } } class Dog extends ...

    深入Java核心 Java中多态的实现机制.docx

    首先,多态的实现机制基于Java的动态绑定(Dynamic Binding)。在Java中,当一个基类引用指向一个派生类对象,并调用方法时,实际执行的是子类中重写(Override)的方法,而非基类的方法。这是因为Java在运行时会...

    java继承、多态的简单程序.zip

    这是Java中最常见的多态形式,也称为动态绑定。 例如: ```java public class Animal { public void sound() { System.out.println("Animal is making a sound"); } } public class Dog extends Animal { @...

Global site tag (gtag.js) - Google Analytics