继承-求大神回答我的疑问,这是关于多态的解释

问题描述

求大神回答我的疑问,这是关于多态的解释

鸟类封装了 翅膀类和moo方法;另外有两个类都继承鸟类并重写了moo方法,分别是鹦鹉和麻雀如下:
鹦鹉类:
public class Parrot extends Bird{
public void moo(){
System.out.println("鹦鹉的叫声");
}
}
麻雀类:
public class Sparrow extends Bird{
public void moo(){
System.out.println("麻雀的叫声");
}
}
方法重写应该懂吧,不懂自己找书看吧;然后你有个妻子她想听鸟叫,就有个妻子类
public class Wife{
public void listen(Bird bird){
bird.moo();
}
/*这时多态就很好的体现了,你妻子想听鸟叫,无论什么鸟都可以给她,但是你想让她和鹦鹉
*说话,你就买了一只鹦鹉传给listen方法,结果你妻子听到了鹦鹉的叫声,程序输出:鹦
*鹉的叫声
*/
public static void main(String[] args) {
new Wife().listen(new Parrot());
}
}

我想问的是:
这样是多态比较简单,但假如我不用妻子类,直接在main方法里new对象,这样要加燕子的声音,直接new燕子,不还是只需要写个燕子类就行了吗,还更简单,new Parrot().moo;
new Swallow().moo;.....,连继承都不用了。。。,反正只需要声音,不一定要妻子

解决方案

1.妻子类,只是调用了Bird的方法,是不参与继承的,但是妻子类是展示了多态的好处,不论你是鹦鹉还是什么别的,都可以通过Bird类来调用,而且虽然写的都是moo方法,实际调用却是各自不同的moo方法
2.连继承都不用了这个思想就不对,为什么要用继承,最大的好处就是代码简单了,重复的东西只要写一次。如果你不使用继承,那燕子鹦鹉两个类里面会有重复的部分:翅膀。

解决方案二:

注意有一个前提
妻子要听鸟叫

如果妻子不听鸟叫,直接用你那样写就可以

你这是语文没学好

解决方案三:

java中多态的理解

时间: 2024-09-13 16:38:06

继承-求大神回答我的疑问,这是关于多态的解释的相关文章

求大神回答 java的swing题目

问题描述 求大神回答 java的swing题目 1.创建项目Lab37,添加类MainFrame,继承自JFrame,实现ActionListener接口. 2.添加以下成员属性 a)JTree类型的treeDir b)String类型的dirName c)JSplitPane类型的sp d)JTable类型的fileInfo 3.构造方法 a)设置标题为"文件信息查看器" b)创建工具栏,并添加一个"打开"按钮.注册按钮事件监听对象为this c)构造一个只有一个

图片-css样式不加载实在是找不出原因,求大神回答

问题描述 css样式不加载实在是找不出原因,求大神回答 解决方案 改个名字试试,css.css换成别的index.css试试 解决方案二: f12打开浏览器开发工具,看网络里面你的css.css文件是不是404了,路径不正确 解决方案三: 路径问题,要么没有文件,不信复制到首页 解决方案四: 你这样写其实不合理,不能确定路径是否正确.建议: <c:set var="ctx" value="${pageContext.request.contextPath}"/

lockcanvas-一个关于android surfaceView的问题,求大神回答

问题描述 一个关于android surfaceView的问题,求大神回答 surfaceView据说双缓存,两画布换来换去,但是我post后画布有时候还有有时候就没了 surfaceCreated方法里,最后的 canvas=sfh.lockCanvas(); sfh.unlockCanvasAndPost(canvas); 多加几个少加几个出现不同的情况,这个是怎么回事,大神求帮忙TT 下面是代码 clock.java package com.app.jtj.clock; import an

遍历-数据结构问题求大神回答呀!!!小弟感激不尽!(可以分开了回答不用一次回答完)

问题描述 数据结构问题求大神回答呀!!!小弟感激不尽!(可以分开了回答不用一次回答完) 1.对于键值序列{38,73,52,15,64,40,48,55,26,12},用筛选法建最小值堆,共交换元素多少次? 2.从空二叉树开始,严格按照二叉搜索树的插入算法(不进行旋转平衡),逐个插入关键码{15, 82, 10, 4, 55, 89, 29, 45, 54, 35, 25}构造出一颗二叉搜索树,对该二叉搜索树按照后序遍历得到的序列为(元素与元素之间用一个空格隔开) 3.对于以下等价类,采用"加权

ssl-关于https的问题,求大神回答

问题描述 关于https的问题,求大神回答 我们做java的https 项目的时候,是不是在服务器配置了ssl证书就ok了??别的什么都不用管??数据是自动加密的,我们就正常的 getParameter() 获取就可以了是吗???求大神回答... 解决方案 是的,服务器上配置ssl证书就可以了.服务器程序帮你进行数据加解密,你java处理的时候已经是正常数据了 解决方案二: 是这么回事,但是配置ssl好像挺费劲的,我们之前做的时候jsp目录都有要求,是根据访问的目录动态添加ssl加密.希望对你有

myeclipse svn导入maven项目启动时报下面错误,求大神回答

问题描述 myeclipse svn导入maven项目启动时报下面错误,求大神回答 17:23:40 WARN [main] XmlWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean w

JDBC 向数据库插入数据 遇到个怪问题 求大神回答

问题描述 JDBC 向数据库插入数据 遇到个怪问题 求大神回答 代码如下package insertCar; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List; public

nlb-Hyper-V配置NLB后无法访问---求大神回答??

问题描述 Hyper-V配置NLB后无法访问---求大神回答?? 1.建了两个虚拟机,winserver2012. 2.配置了NLB后,在实际电脑上访问配置的NLB地址出现IIS页面,没有出现配置的web页面. 3.删掉IIS 的default site后,再次访问,报404错误. 可能是什么原因呢? 解决方案 没有把你自己的WEB设置为默认的,或是没有绑定,例如设置端口号,和特定IP和域名等

对象-JAXB可以生成字符串形式的XML么?求大神回答

问题描述 JAXB可以生成字符串形式的XML么?求大神回答 怎么利用JAXB把对象转换成字符串形式的XML,在线等 .... 解决方案 结构 <?xml version="1.0" encoding="utf-8" ?> <busiSync> <header> <OperCode>1</OperCode> <TimeStamp>1</TimeStamp> </header>