JAVA多态基础问题,本人刚学,希望大虾们帮帮忙!谢谢!

问题描述

publicclassDemo4{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//Catcat1=newCat();//cat1.cry();//Dogdog1=newDog();//dog1.cry();Animala=newCat();a.cry();为什么这句编译不过去呢?多态是这样用的吗?}}classAnimal{intage;Stringname;publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicvoidcry(){System.out.println("不知道谁叫:");}classCatextendsAnimal{publicvoidcry(){System.out.println("猫猫叫声");}}classDogextendsAnimal{publicvoidcry(){System.out.println("狗狗叫声");}}}

解决方案

解决方案二:
Cat、Dog是Animal类的内部类?
解决方案三:
在Demo4类中,添加:Animala=newAnimal();a.getCat().cry();

在Animal类中,添加:publicCatgetCat(){returnnewCat();}

解决方案四:
Animala=newCat();a.cry();为什么这句编译不过去呢?多态是这样用的吗?}Cata=newCat();//构造一个Gat,里面有父类的属性和方法。
解决方案五:
publicclassDemo4{publicstaticvoidmain(String[]args){Animala=newDemo4().newCat();a.cry();}classAnimal{intage;Stringname;publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicvoidcry(){System.out.println("不知道谁叫:");}}classCatextendsAnimal{publicCat(){}publicvoidcry(){System.out.println("猫猫叫声");}}classDogextendsAnimal{publicvoidcry(){System.out.println("狗狗叫声");}}}

关键是这里:newDemo4().newCat();创建内部类的对象时需提供一个外部类的对象作为构造方法的参数,因为非静态内部类的作用域属于外部类的某个对象;如果使用静态内部类,就无需如此了。
解决方案六:
原来如此。。

时间: 2024-08-03 07:14:45

JAVA多态基础问题,本人刚学,希望大虾们帮帮忙!谢谢!的相关文章

java题求思路,刚学的数组

问题描述 java题求思路,刚学的数组 有5个班,现在要分别统计这5个班的学生的平均薪资,然后统计整体的平均薪资, 再按照性别在分别统计每个班男女的平均薪资, 然后按照每个班的平均薪资由高到低输出每一个班的每一个学生的薪资.性别和名字. 解决方案 Java小计算器~刚学 解决方案二: 这题目不难啊,就几个FOR循环,加减乘除操作就完了 import java.util.Scanner; public class Method { public static void main(String[]

各位能不能提供一个MFC框架的C++计费系统,要是完整的实验报告和可直接运行的代码,希望大神帮帮忙吧

问题描述 各位能不能提供一个MFC框架的C++计费系统,要是完整的实验报告和可直接运行的代码,希望大神帮帮忙吧 高手有赏追加30金币,说到做到,为了应付学校的生产实习来着,还请各位理解............................................ 解决方案 那你google下吧,只是一个现成的报告,自己找找.我要睡觉了,懒得帮你了. 解决方案二: 一般代写论文是300~500每篇,折合成"金币"大约是6000~10000,而且因为"金币"没

一道java题目,请大虾们帮帮忙,我是个新手,谢谢

问题描述 一道java题目,请大虾们帮帮忙,我是个新手,谢谢 编写一个程序,对于输入的一段程序,可以获取该程序的单词符号.单词符号的类别有基本字.标识符.常数.算符和界符.关键字为基本字,由字母组成,如int.for和while:变量名和函数名为标识符,由字母和数字构成,如fun1和age:固定不变的数值为常数,如12.13.86和25e8(科学计数法):算符如+.-.*./ .%.&&:界符如 {.[.(. :和:等. 如, public?static?void?main (String

java-一道Java题目,请大虾们帮帮忙,谢谢了

问题描述 一道Java题目,请大虾们帮帮忙,谢谢了 用Java编写一个程序,对于输入的一段英语文本,可以统计: 1.该文本中有多少英语单词: 2.该文本中有多少不同的英语单词. 如,输入 I am a good student. I am in Zhengzhou. 则可以统计出有9个英语单词.7个不同的英语单词. 解决方案 首先,需要对输入信息进行处理,去掉输入的标点符号,并以空格替换,需要用正则表达式,进行全部替换: 其次,就是对输入单词进行统计,使用字符串的分割函数split(" &quo

c# 改变颜色 button-大家好,我问的是c#中的button变色的问题,希望各位高手帮我谢谢!

问题描述 大家好,我问的是c#中的button变色的问题,希望各位高手帮我谢谢! 问题是这样的,我在Page_Load中限定了重置button.Enabled = false,颜色为重置button.BackColor = Color.Gray,然后我想在textbox改变的话能这个重置按钮能变回以前的颜色green并且按钮可用,我在textchanged中写了没反应,麻烦各位高手能给我写段可用的代码,尽量简单的,新手哈我是,拜托了!!!! 解决方案 我是门外汉更是看不懂

新手求助,希望各位能帮帮忙

问题描述 小弟刚学java一个月,看过下视频,也看书,有点基础,但是就是缺少练习敲代码,简单点程序没什么算法的一看基本就能明白,但要自己写这种简单的程序又不知道如何下手,因为以前学数学都是跳着几步解答的,现在要一步一步却不知道怎么才能表达出来,怎么下手,现在在看java编程思想,感觉题目也不多,也找不到标准答案参考!!,我想坚持学两个月,做两个月练习题,看看自己有没有进步,现在有几个问题:1.我没什么java编程练习的书,能介绍网上有资源的吗?2.另外没什么系统的学习方法,怎么才能由新手进步到j

JAVA的JS正则问题,帮帮忙 谢谢

问题描述 <IMGhspace='90'height='200'src="/webinfo/UploadFile/2009/4/14/2009041403135693.jpg"width='300'><br><IMGhspace='90'height='200'src="/webinfo/UploadFile/2009/4/14/20090414031415296.jpg"width='300'>2张图片我想通过JS正则取得图片的

本人刚学JAVA 要做个小项目 求解答这个语句

问题描述 publicclassCustomerUpdateActionextendsBasicAction{publicvoidexecute(ActionMappingmap,Objectob,HttpServletRequestreq,HttpServletResponseres){List<Customer>lis=(List<Customer>)ob;这些语句是要做什么?(项目中有其他包)什么意思 解决方案 解决方案二:用的是struts框架...新建一个List对象..

我想用java写一个扫描局域网mac地址的程序!希望大家帮帮忙谢谢

问题描述 就是给IP段,扫描MAC地址,希望各位大侠帮帮我!谢了 解决方案 解决方案二:你想干嘛?解决方案三:给你提供一个方法,经测试可以使用的,如果有一定的基础肯定能看懂,无注释,不解释packagetools;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.LineNumberReader;publicclassMacAddressSearcher{publicstaticStringgetMac