简单的java接口与多态问题?

2025-04-28 18:57:27
推荐回答(4个)
回答1:

你是怎么理解多态,常规来讲多态是指不同的实现同一个接口的类都实现接口中的方法,但各自有不同的表现。题目里只有一个Duck类实现Swimmable和FlyClimbable接口,如果要做多态必须还要另一个类来实现这两个接口。

回答2:

多态存在的三个必要条件:继承、重写、父类引用指向子类对象

回答3:

你的这个问题这么难,为什么你还要说简单的?这怎么可能是简单的呢?这难度非常大好不好?

回答4:

多态存在的三个必要条件:
1.要有继承
2.要有重写
3.父类引用指向子类对象
多态的好处:
1.可替换性。多态对已存在代码具有可替换性
2.可扩展性。增加新的子类不影响已存在的类的多态性、继承性,以及其他特性的运行和操作。(主要)
3.接口性。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
4.灵活性。
5.简化性。
java中多态的实现方式:
接口实现、继承父类进行方法重写,同一个类中进行方法重载。
[一个多态例子的代码]
(https://img-blog.csdn.net/20170607221434107?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGY1OTkyNjI2ODE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

多态的弊端:
不能使用子类的特有方法。
解决方法:向下转型
向下转型好处:可以使用子类型的特有功能。弊端:面对具体的子类型,向下转型有风险,容易发生ClassCastException。只要转换的类型和对象不匹配就会发生。想要安全就必须进行判断,判断一个对象是否匹配某个类型,需要一个关键字instanceof 对象 instanceof 类型
例子:if(!(a instanceof Dog)){
System.out.println(“类型不匹配”);
return;
}

文章最后发布于: 2017-06-08
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tf599262681/article/details/72927915