[问题] 新手关于物件导向的问题

楼主: hoehoeshiaw (a350330)   2018-11-13 13:40:40
https://i.imgur.com/BdHF4bX.jpghttps://i.imgur.com/xrfqFFA.jpg
第二题我很确定它的解析完全错误……
只是我不太懂为什么它是呼叫human的move而不是animal的move?
然后请教各位前辈接口可以生成物件吗?
像是 Movable m = new Mammal()合法吗?
请大家帮帮忙了
作者: gama79530 (Perfect Man)   2018-11-13 14:39:00
只有一般的class可以new,其他都不行第一个问题你可以用关键字"动态系结"去google
作者: lemon651 (小明)   2018-11-13 15:02:00
Animal是interface 定义了应该move 但是Human这个class实践了move 举例来说狗也是animal人也是animal但是move的速度或方式可以不一样 就是各自的类去实践定义没看清楚 他是abstract class差不多意思 abstract class可以预定义move他这边是直接override了
作者: LZN (秋)   2018-11-13 15:07:00
new Human()就表示实际产生是Human instance, 而Animal a = X表示把X在变量a中当作Animal来操作, 因此a可以使用Animal所定义的method, 而method到底怎运作是看该X到底是什么instance
作者: toy9986619 (幻飘)   2018-11-18 00:24:00
接口不能new 出物件抽出来做接口的原因是因为写在class也要继承的情况下,有修情况会变得很怪例如行走好了,动物可以行走,机器人可以行走,如果为了维护而把行走写在动物,要机器人继承动物的话就会变得很怪所以写成接口,预先告知有哪些method实作接口的class必须实作出在接口定义的method这样用接口的变量(遥控器)去参考物件(实体)时才能进行操作

Links booklink

Contact Us: admin [ a t ] ucptt.com