java的多态性

类的多态性
多态性是指在类定义中出现多个构造方法或者多个同名的成员方法(所以,多态性又被称为“一个名字,多个方法”),当某个变量的实在参数类型和形式参数类型不一样时,编译器一定调用与此实在参数(变量)相匹配的方法,多态性使得继承的特性更具有灵活性和可扩展性,其目的是为了提高软件的重用性。
多态性的实现有两种方式:覆盖实现和重载实现,方法的覆盖与重载均是Java多态的技巧之一,但两者之间也有不同之处。
1)重载是指在同一个类中定义多个名称相同,但参数个数或类型不同的方法,Java根据参数的个数或类型调用相对应的方法。重载实现多态性是指通过定义类中的多个同名的不同方法来实现。
2)覆盖是指在子类中定义名称,参数个数与类型均与父类相同的方法,用以重写父类中的方法的功能。覆盖实现多态性是指通过子类对继承父类方法的重定义来实现,即多个类中存在着名字相同的
package case2;
/**
* 多态性实现动物叫唤。在父类中有shout()方法输出动物叫
* 提示信息。而在子类中重写shout()方法,输出具体的动物叫声。
* @author Administrator
*
*/
//动物类
class Animal{
public void shout(){
System.out.println("*****动物叫*****");
}
}
//狗类
class Dog extends Animal{
public void shout(){
System.out.println("狗叫:汪汪。。。");
}
}
//猫类
class Cat extends Animal{
public void shout(){
System.out.println("猫叫:喵喵。。。");
}
}
//鸟类
class Bird extends Animal{
public void shout(){
System.out.println("鸟叫:叽叽喳喳。。。");
}
}
public class duotaixing {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Animal animal = new Animal();
Dog dog = new Dog();
Cat cat = new Cat();
Bird bird = new Bird();
shoutOfAnimal(animal);
shoutOfAnimal(bird);
shoutOfAnimal(cat);
shoutOfAnimal(dog);
}
public static void shoutOfAnimal(Animal animal){
animal.shout();
}
}
系统会根据动物的不同,调用相应的动物叫唤方法,而不是仅仅只能调用其父类的相应方法。这种现象的本质是:系统内部建立了方法调用语句与方法之间的关联关系,并动态地绑定了这种关联关系,在程序运行时,就能够根据关联性调用相应的方法,这就是面向对象技术中多态性的奇妙之处。
*****多态存在的三个必要条件*******
一、要有继承;
二、要有重写;
三、父类引用指向子类对象

总结,多态的实现方式: 接口实现,继承父类进行方法重写,同一个类中进行方法重载。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值