已有101人关注
类的继承与向上转型的问题
发表在Java图书答疑 2019-08-13 《Java从入门到精通(第4版)》第10章 接口、继承与多态
是否精华
版块置顶:

class Animal {

void jump() {

System.out.println("跳跃");

}

}


class Fish extends Animal {

void move() {

System.out.println("游泳");

}

}


public class Demo {

public static void main(String[] args) {

Animal jack = new Fish();

jack.move();            // 这里出现报错:没有为类型Animal定义方法move()


}

}

 

在jack.move()那里报错:没有为类型Animal定义方法move(),为什么??? 我认为这里应该直接可以运行出游泳来。求解答

分享到:
精彩评论 3
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2019-08-13
沙发

父类对象不能调用子类方法

18324139407
学分:28 LV2
2019-08-13
板凳

根号申 发表于2019-08-13 13:20

父类对象不能调用子类方法

class Animal {

void move() {  //这里由jump改为了move

System.out.println("跳跃");

}

}


class Fish extends Animal {

void move() {

System.out.println("游泳");

}

}


public class Demo {

public static void main(String[] args) {

Animal jack = new Fish();

jack.move();          

}

}

老师,我把上面的jump改为了move,运行结果出来就为游泳了,那这里jack.move(),这里父类对象的调用,不应该结果为跳跃吗?我知道还有一句这这里Animal jack=new Fish(),父类声明了对象,由子类进行实例化,这里的jack能不能近似看作jack指向了子类对象??我的理解是jack指向了子类对象,这里jack.move();的结果就正确了,就为游泳了,我的理解有问题吗。老师?

根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2019-08-15
地板

父类定义,子类实现。定义决定对象有什么,实现决定对象做什么。运行结果摆在你面前,还需要问这么多反问句吗?

首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照