JAVA初级(十七)对象之三大特性:多态

本章介绍多态


多态就是一个行为有多个不同的表现形式.比如打印机,同样是打印的动作它分为彩印和黑白印等.同样是插usb接口,有的是为了传输文件,有的为了充电等。

1,多态在代码中如何体现?
(1)接口
接口相关文章点这
接口就是典型的一种多态体现.
有这么一个动物接口.动物有很多行为,吃,动之类的.但是每种动物的表现形式不太一样.比如鸟啄着吃,狗咬着吃等。

public interface Animal {
     void eat();//动物都会吃,但是每种动物吃东西的方法不太一样。
}

public class Dog implements Animal{
    @Override
    public void eat() {
        System.out.println("狗咬着吃");
    }
}

public class Bird implements Animal{
    @Override
    public void eat() {
        System.out.println("鸟啄着吃");
    }
}

这样就能够体现出JAVA的对象多态性.同样是吃的行为,但是它有多种表现形式,有的啄着吃,有的咬.

(2)继承一个有抽象方法的抽象类
抽象类和抽象方法相关文章在这
继承抽象类重写抽象方法也是很典型的一种JAVA对象多态性的体现.

public abstract class Animal {//有抽象方法的抽象类
    public abstract void eat();
}
public class Bird extends Animal{
    @Override
    public void eat() {//继承并重写抽象方法
        System.out.println("鸟啄着吃");
    }
}

动物是抽象的,它有一个吃的抽象方法。每一种动物都有不太一样的吃的行为。
执行以下代码

 public static void main(String[] args) {
         Animal animal = new Bird();//多态体现
         animal.eat();
     }

这样Animal类就有具体的吃的方法了

(3)重写
重写相关文章在这
实现接口,集成有抽象方法的抽象类.或者你要扩充父类方法的功能时你都要重写。这些都是多态的体现.
比如重写父类的一个方法,那么同样一个行为父类和子类表现的方法就不一样.

2,重载是不是多态?
重载在体现上也是一个行为不同的表现形式,但和重写有点区别.重载你在编译的时候就已经很清楚它的形式了。但是重写不一定。重写是只有在运行的时候才能确定它的表现形式。比如上面提到的Animal和Bird它们都有eat()的方法.但是系统在编译的时候并不知道会用那个eat()方法。它只管编译通过。只有在运行的时候才能知道是那个eat()方法.重写是基于对象编程的多态。

但是重载是不是多态呢?重载它符合多态的概念,一个行为不同的表现形式,但不是面向对象特性上的多态。

总结:
1,什么是多态?
一个行为不同的表现形式,比如彩印和黑白印
2,代码中如何体现?
接口,抽象类和抽象方法,重写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值