java 请帮我解释一下这段程序
发布网友
发布时间:2022-05-04 14:58
我来回答
共2个回答
热心网友
时间:2022-06-23 07:53
这是Java的多态的表现。
Animal a 这个声明已经指定了a就是一个Animal类的对象。这是静态绑定(即在编译时就已经决定了)。
由于Cat和Dog都继承自Animal,是Animal的子类,所以Cat和Dog也算Animal类,a=new Dog("bigyellow","yellow");是向上转型,即父类的对象可以指向子类对象(你可以这样理解:猫是动物,但不能说动物是猫)。a=new Dog("bigyellow","yellow");是动态绑定(即在程序运行时才决定a到底是属于哪一类)。
既然a已经声明了是Animal类了,所以a没有furColor属性。但由于到后来a又指向了Cat对象,所以a是Cat的实例。
不知道你明白否,建议多看看Java多态的那一章节。
热心网友
时间:2022-06-23 07:54
父类变量可以指向子类对象,但是不能使用子类新增的属性。你程序中的a是父类(Animal)变量,它不具有子类Dog的furColour属性。如果非要使用,必须进行强制类型转换,强制转换成子类变量(也就是说用另一个子类变量来接收),表现在程序中就成了Dog的实例在使用furColour属性。
帮我解释以下JAVA程序,越详细越好
1:Inside main()2:Cup(1)3:Cup(2)4:f(99)这是程序的输出。解释:jvm首先初始化main方法所在的那个类,然后执行main方法。如此打印了第一行。然后,Cups.cup1是对Cups的静态变量cup1的引用,这会触发对Cups类的初始化,jvm会按照静态变量赋值语句和静态语句块出现的顺序执行它们,所以执行static块...
java判断素数,请大神帮我解释一下这段程序!!!
这段程序的意思是:寻找40个素数,寻找范围是从2开始查找,并且打印的时候每输出10个素数,进行换行。分别对其重要的部分进行一下标注 1. while(count<NUMBER_FOR_PRIMES) 这个表示要找出40个素数 2. for(int i=2;i<=number/2;i++) 这里之所以i<number/2,是因为在判断的时候,不需要对大于num...
大神看一下这段代码有没有什么问题一直报这个错误java.lang.StackOver...
出现这个问题的原因是递归无限调用了,最后stack举出。
java ~谁能帮我把这段代码写下注释~~
clockThread.stop(); //结束时钟这个线程,释放内存资源。} } //关于applet可以参考 / public final void setStub(AppletStub stub)设置Applet的stub.stub是Java和C之间转换参数并返回值的代码位,它是由系统自动设定的。public boolean isActive();// 判断一个Applet是否处于活动状态。public URL getD...
JAVA这个程序段怎么解释
int a[]=new int[]{2,5,1,9,6,12,4};//定义一个数组 int i,j;//定义两个变量 int t;//定义中间变量 建议不要用t for(i=a.length-1;i>=1;i--)//数组从大到小循环 for(j=0;ja[j+1]){//如果a的前一项大于后一项 t=a[j];a[j]=a[j+1];a[j+1]=t;//以上三步...
我这段JAVA程序是什么意思,高分!!!
if(!isLetterOrDigital)response.sendRedirect("upload.jsp");重定向。不过这个方法写的不对啊,是要带参数的,否则没意义!参数定义有的没给,没法看,中间这段好像是向文件中插入内容的。最后是数据库的链接!
请教大家帮我解释一段 JAVA 程序代码,越详细越好!谢谢...
如:sql中department.getQuery_parentDeptName() 赋值部门名称。又如:dept= jdbcDao.queryForPage(pageRequest, sb.toString(),DepartmentVO.class, values);传入pageRequest对象参数以方便分页设置参数。顺便讲下这个方法的四个参数:分页对象(提供分页参数),sb.toString()(sql语句),DepartmentVO.class...
求高手解释下这个java程序是怎么运行的?其实就是递归调用是什么意思...
这个程序算的是从1到你给的参数的累加值吧 1.首先你调用sum()方法并放进去参数100 2.if语句判断参数num是100 3.进入else语句块,为该方法返回结果num+sum(num-1),即 100+sum(99) 注意,在这里又调用了一次该sum方法,因此它又会将99当参数放到该sum方法里面继续运行一次,又会跳到else语句,然后又...
找个JAVA高手帮忙分析下这段代码有什么问题,我在自学JAVA,现在写的这个...
有很多种可能哦,有可能是你的驱动有问题哦,你用的是2008还是2000还是2005,这些版本的驱动不同哦,还有在这里你没有用预处理,你为什么还要用preperStatement()这个方法呢,这样会降低效率的,没有预处理的时候还是用statement()吧
Java问题,程序解释,能告诉我以下程序的每一句话都是什么意思吗?帮忙写...
程序一://导入输入输出文件包import java.io.*;//类public class CreateFile {// 主函数public static void main(String[] args) throws IOException {//打印出目标路径,用于标识System.out.println("生成目录:e:\\MJava\\xs2");//定义路径,可用于创建File file1 = new File("e:\\MJava...