认识Java语言中多态的思想

Java是一门面向对象的编程语言,面向对象的编程语言三个重要的特点是:封装、继承、多态。

 

1.多态的概念

多态是一种思想, 故名思意是多种形态的意思,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。比如鸟和羊,两个都是动物,但鸟会飞且是卵生动物,而羊只会跑且是胎生动物,因其本身的特性而区分出了动物的种类,且鸟只是一个统称其中还区分出了蜂鸟、啄木鸟等等,这里就表现出了动物的多种形态。

2.多态的实现条件       

Java中要实现多态,必须满足以下几个条件,缺一不可

1)必须在继承体系下

2)子类必须要对父类中方法进行重写

3)通过父类的引用调用重写的方法   

3.使用多态的案例

class Animal{
    public String name ="动物";

    public void Behave(){
        System.out.println(name+"吃东西");
    }
}
class Bird extends Animal{
    public String name = "小鸟";

    @Override
    public void Behave() {  //方法的重写
        System.out.println(name+"吃虫子");
    }
}
class Sheep extends Animal{
    public String name = "绵羊";

    @Override
    public void Behave() {
        System.out.println(name+"吃草");
    }
}

上面的代码中我们定义了一个父类Animal,两个子类Bird、Sheep,并在子类中对父类的方法Behave进行了重写

再看下面的代码

public class Test2{
    public static void main(String[] args) {
        Animal fruit1 = new Animal();
        Animal fruit2 = new Bird();
        Animal fruit3 = new Sheep();
        fruit1.Behave();
        fruit2.Behave();
        fruit3.Behave();
    }
}

这段代码我们分别用父类new了三个对象,并分别调用了Behave方法,看下输出结果

从输出结果来看 --我们引出了一个新的知识点 -------->向上转型!

向上转型:是子类继承父类,并创建对象的过程 或者换句话来说 实际就是创建一个子类对象,将其当成父类对象来使用

语法格式:父类 对象名 = new 子类类型() ;

子类继承后,只能调用父类中已有的方法,不能调用子类独特的方法。如果子类中已重写,则调用重写的方法。

4.向上转型的优缺点

优点:让代码实现更简单灵活

缺点:不能调用到子类特有的方法

如果需要调用到子类中特有的方法则需要进行向下转型则将父类引用再还原为子类对象

向下转型不安全,万一转换失败,运行时就会抛异常。 Java 中为了提高向下转型的安全性,引入 了 instanceof ,如果该表达式为 true ,则可以安全转换。
instanceof   关键词官方介绍: https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.20.2
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值