多态心得(java课上)

首先解释多态是什么意思
多态(Polymorphism)按字面的意思就是“多种状态”。如何实现多种状态,简单的说就是用继承(2017.10.19 目前只讲了类之间的继承,尚未涉及接口)
有一个父类叫做动物,下面有几个继承自他的子类,例如狗类,鱼类,羊驼类,鸟类。虽然这些动物都会移动,但是移动的方式不同,有飞的,有走的,有游的。但是他们同时又都是动物类,我们创建的时候想要省些力气,不能总是 子类引用 = 子类对象 。这样还怎么复制粘贴?所以我们使用多态,可以 父类引用 = 子类对象 这样我们就可以复制很多代码,甚至使用数组 节省时间了。

使用多态必须注意三点

1、 首先要有继承关系
2、子类要把父类方法重写(如果没有重写就会调用父类的方法)
3、父类引用指向子类对象 即//父类类型 对象名称 = new 子类类型()
这是最重要的一点,只有将父类引用指向子类对象,才能达到多态的效果,即动态链接。

总结:
1、该引用只能调用父类中定义的方法和变量
2、如果子类重写父类中的方法和变量。那么调用方法时,将会调用子类重写的方法。 如果子类没有重写,会调用父类本身的方法。
3、如果子类继承自父类的方法被重载,那么不调用重载后的方法。

class Animal {
    public void start(){
        System.out.println("我是父类的开始方法");
    }
}

class Beast extends Animal{
    public void start(){
        System.out.println("我是跑步的");
    }
}


class Bird extends Animal{
    public void start(){
        System.out.println("我是飞的");
    }
}

class Fish extends Animal{
    ///我什么也没有  默认是父类的start()方法
}

public class Demo{
    public static void main(String[] args) {
        Animal[] animal = {new Beast(),new Bird(),new Bird(),new Fish()};
        for (int i = 0; i < animal.length; i++) {//遍历数组
            animal[i].start();//调用每个对象start方法
        }
    }

}


/*
 *结果如下
 *我是跑步的
 *我是飞的
 *我是飞的
 *我是父类的开始方法
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值