JAVA 接口与多态 求符合下列要求的代码多态是面向对象编程的特征之一 , 而接口是一系列方法的声明 , 是一些方法特征的集合,有特定的语法和结构,这两者根本不是同一类型和层次上的概念 。接口毫无疑问可以体现出多态性来,但是多态性未必一定要用接口,只要存在方法的重写、重载与动态连接即可体现多态性(如存在继承关系的类之间),所以,不存在“什么时候用接口什么时候用多态”的问题,程序里写的具体代码只可能是接口,只是这代码可能会体现出多态性而已,两者可以在不同的概念层次上并存,不存在冲突 。
简而言之,你可以在程序里用代码定义一个接口,但是你不能定义一个多态 , 多态只是对你代码特征的一种描述,一种概念上的抽象和总结 。
谁能跟我说几个JAVA多态,在现实生活中应用的例子,不要说代码和概念,就只说案例有一个比较经典的多态实例:
有一个Animal类,它有Cat , 和Dog两个子类,在Animal中有个say方法,当Cat调用这个方法的时候输出的是“小猫喵喵喵” , 当Dog调用这个方法时,输出的是“小狗汪汪汪”,这就是Java多态的实现 。
1、定义一种动物,该类型的动物有叫的属性 。
2、分别定义猫,狗,鸟,都继承于该动物,都有叫的属性 。
3、分别表示出各个具体小动物的叫声,例如猫的叫声:喵、狗的叫声:汪、鸟的叫声:咻,点是叫声 , 实现各个具体小动物用的叫声的方法是用的同一个函数名称,就是动物的叫声函数 。
多态:
这个案例网上是没有的,属于无忌独创,当时在帮孩子辅导作业,小学科学,里面有一点内容是关于人的牙齿,说牙齿分为:门齿、犬齿、臼齿 。
问闺女,为什么这么分呢?闺女说牙齿虽然都是用来咬食物,但是食物种类很多,咬碎需要的工具也不一样 , 门齿用来切割食物,如:苹果、梨;犬齿用来撕碎食物 。
如肉类;臼齿用来磨碎食物,如犬齿撕碎的肉类,就需要再用臼齿来磨碎 , 然后送到食道,胃 , 小肠,大肠进行消化 。我恍然大悟 , 这不就是Java面向对象里的多态吗?多完美啊 。
这也很好说明了为什么会有多态出现,因为生活中就存在太多这种例子,所以需要多态来匹配解决 。
下面是一个关于java多态的代码,我没看懂是什么意思,希望各位大神帮忙解答一下?你好,很高兴回答你的问题 。
请看图中红线标识的位置,int变量c是调用方法的对象b的一个属性,在第一次执行b.a(new C())时,b对象的c变量已经执行c++变成了1了,在执行b.a(new D())时输出变量c时 , 自然就是1了 。
如果有帮助到你,请点击采纳 。
JAVA多态程序编程代码如下:
// BTest.java
package com.baidu.demo036;
abstract class A {
public abstract void f();
public void g() {
System.out.println("Hello");
}
}
class B extends A {
@Override
public void f() {
System.out.println("Hi");
}
}
public class BTest {
public static void main(String[] args) {
B b = new B();
b.f();
b.g();
}
}
// RectTest.java
package com.baidu.demo036;
interface Shape {
double computeArea();
}
class Rect implements Shape {
private double width;
private double height;
public Rect(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double computeArea() {
return width * height;
}
}
推荐阅读
- 安卓平板电竞游戏,安卓平板电竞游戏排行榜
- redis缓存失效时间设置,redis缓存时间设置规则
- 计算机专业毕业设计小程序,2020计算机科学与技术毕业设计app
- 教官角色扮演游戏小说推荐,教官角色扮演游戏小说推荐知乎
- vb和java代码区别 java和visual basic
- 视频网站视频下载,视频网站视频下载工具
- 移动服务器怎么切换,移动服务器的ip是多少?
- 无人直播电影直播间怎么开,无人直播可以放电影吗
- mysql拒绝安装怎么办 mysql安装被拒绝