package string;
class Animal
{
public void roar()//roar英文意思‘叫声’
{
System.out.println("动物:...");
}
}
class Cat extends Animal
{
public void roar()
{
System.out.println("猫:喵,喵,喵,...");
}
}
class Dog extends Animal
{
public void roar()
{
System.out.println("狗:汪,汪,汪,...");
}
}
public class AnimalTest
{
public static void main(String args[])
{
Animal am=new Animal();
am.roar();
am=new Dog();
am.roar();
am=new Cat();
am.roar();
}
}
以上代码实现了多态,到底用什么作用,或说有什么好处啊?
我把am=new Dog();
am.roar();改为
Dog dog=new Dog();
dog.roar();
这实现的功能不是一样吗?
给你个例子吧!。。好好体会体会。
假设有一个类 叫 鸟类,它拥有属性翅膀,拥有方法鸣叫,如下
public class Bird{
private Wing wing;
public void moo(){
System.out.println("鸟叫声");
}
}
鸟类封装了 翅膀类和moo方法;另外有两个类都继承鸟类并重写了moo方法,分别是鹦鹉和麻雀如下:
鹦鹉类:
public class Parrot extends Bird{
public void moo(){
System.out.println("鹦鹉的叫声");
}
}
麻雀类:
public class Sparrow extends Bird{
public void moo(){
System.out.println("麻雀的叫声");
}
}
方法重写应该懂吧,不懂自己找书看吧;然后你有个妻子她想听鸟叫,就有个妻子类
public class Wife{
public void listen(Bird bird){
bird.moo();
}
/*这时多态就很好的体现了,你妻子想听鸟叫,无论什么鸟都可以给她,但是你想让她和鹦鹉
*说话,你就买了一只鹦鹉传给listen方法,结果你妻子听到了鹦鹉的叫声,程序输出:鹦
*鹉的叫声
*/
public static void main(String[] args) {
new Wife().listen(new Parrot());
}
}
多态实现了动态绑定,让程序有了很好的扩展性,比如你以后想买一只燕子送给你妻子,就只需要写个燕子类Swallow继承Bird方法就可以了,而不需要再在妻子类里添加一个方法listen(Swallow swallow)……上面编码没用编译器,可能有错误,请谅解
说得够详细了吧,感谢世界上有我这么好的人吧 ^_^
多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
JAVA引用变量有两个类型:一个是编译时的类型,一个是运行时的类型,编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就会出现所谓的多态(Polymorphism)。这和C++里的类似。
class BaseClass //父类java多态是什么意思?
Java多态是一种OOP的特性,即同一种方法或对象可以根据不同的情况表现出不同的行为。简单来说,就是同一个接口可以有不同的实现。这种特性使得Java在面向对象编程方面更加灵活,使代码更加可复用并且降低了代码的复杂度。与多态相关的概念还包括继承和重写。从父类继承下来的方法可以被子类重写,子类可以...
java的多态怎么理解啊,多态有什么用途。
多态有编译时多态 和运行时多态。第一个是通过方法重载实现;第二个是通过方法覆盖实现(子类覆盖父类方法)。第一种就是我们调用方法是不用区分参数类型,程序会自动执行相应方法,如: 加法运算,可以使int相加,可以是double相加,都是同一个方法名。第二种就是动态绑定,使用父类引用指向子类对象,...
java多态性是什么?怎么理解和使用多态?
深入浅出讲解Java多态性,剖析其概念、作用、分类、必要条件与实现方式,以及拓展补充内容,旨在帮助你理解和运用多态概念。多态性使得面向对象编程更加灵活、易于扩展。一、多态性简介 1. **概念**:多态性源于生物学,指生物在形态和状态方面的多样性。在Java中,多态性意味着同一个行为可以有不同的表...
java的多态是什么意思
Java的多态是指同一个方法调用会根据调用对象的不同而产生不同的行为。具体地说,它包括两种形式:重写和重载。重写指的是在子类中重写父类中的方法,对于同样的方法调用,子类将覆盖父类的实现;而重载指的是在同一个类中定义多个同名但参数不同的方法,可以根据不同的参数列表来调用不同的方法。多...
java中的多态怎么理解
Java中的多态是一种非常重要的面向对象编程特性,它的作用主要有以下几个方面:1、代码复用:多态可以将不同类的对象当做同一类型处理,使得代码可以更加简洁、可读性更高,也可以减少代码的冗余和重复。2、扩展性和灵活性:由于多态可以使得程序在不同的对象上表现出不同的行为,因此可以很方便地扩展和...
在java中什么是多态。。 什么时候用多态
Java是面向对象的语言,多态性是面向对象程序设计代码重用的一个最强大机制,动态性的概念也可以被说成“一个接口,多个方法”。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制, 1.可替换性。多态对已存在的代码具有可替换性。 2.可扩充性。多态对代码具有可扩充性。
什么是多态?
一、多态的基本概念 多态意味着可以将子类的对象当作父类的对象来使用。在程序中,不同对象对于同一消息会做出不同的响应,这就是多态性的体现。在Java等面向对象的编程语言中,多态通过继承和接口实现。子类可以重写父类的方法,当调用该方法时,会根据对象的实际类型来确定使用哪种实现方式。二、多态的...
java中多态性什么意思?
在JAVA中有两种多态是指:运行时多态和编译时多态。多态性是面向对象的核心特征之一,类的多态性提供类中成员设计的灵活性和方法执行的多样性。多态指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)实现多态的技术称为:动态...
java中的多态的定义是什么啦 什么情况下使用多态啊?多态有什么作用
多态就是让我们制造出自己想要的东西。写一个画图的类DrawA,定义一个画图的方法a()。我想画个正方形,这时候定义一个正方形类DrawSquare extends DrawA,重写a();方法,方法里边去画正方形。我想去画个圆形,这时候定义一个圆形类DrawCircular extends DrawA,重写a();方法,方法里边去画圆形。这就...
谈谈你对Java中的多态的理解.(为什么要使用多态,有什么好处,一般用在...
Java实现多态有三个必要条件:继承、重写、向上转型。 继承:在多态中必须存在有继承关系的子类和父类。 重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。 向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。 只有满足了上述三个条...