作者hoehoeshiaw (a350330)
看板java
标题[问题] 新手关於物件导向的问题
时间Tue Nov 13 13:40:40 2018
https://i.imgur.com/BdHF4bX.jpghttps://i.imgur.com/xrfqFFA.jpg
第二题我很确定它的解析完全错误……
只是我不太懂为什麽它是呼叫human的move而不是animal的move?
然後请教各位前辈介面可以生成物件吗?
像是 Movable m = new Mammal()合法吗?
请大家帮帮忙了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 49.216.148.139
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1542087642.A.DB8.html
1F:→ gama79530: 只有一般的class可以new,其他都不行 11/13 14:39
2F:→ gama79530: 第一个问题你可以用关键字"动态系结"去google 11/13 14:43
3F:推 lemon651: Animal是interface 定义了应该move 但是Human这个class 11/13 15:02
4F:→ lemon651: 实践了move 举例来说狗也是animal人也是animal但是move 11/13 15:02
5F:→ lemon651: 的速度或方式可以不一样 就是各自的类去实践定义 11/13 15:02
6F:→ lemon651: 没看清楚 他是abstract class差不多意思 abstract class 11/13 15:03
7F:→ lemon651: 可以预定义move 11/13 15:03
8F:→ lemon651: 他这边是直接override了 11/13 15:03
9F:→ LZN: new Human()就表示实际产生是Human instance, 而Animal a = X 11/13 15:07
10F:→ LZN: 表示把X在变数a中当作Animal来操作, 因此a可以使用Animal所 11/13 15:10
11F:→ LZN: 定义的method, 而method到底怎运作是看该X到底是什麽instance 11/13 15:11
12F:推 toy9986619: 介面不能new 出物件 11/18 00:24
13F:→ toy9986619: 抽出来做介面的原因是因为写在class也要继承的情况下 11/18 00:26
14F:→ toy9986619: ,有修情况会变得很怪 11/18 00:26
15F:→ toy9986619: 例如行走好了,动物可以行走,机器人可以行走, 11/18 00:26
16F:→ toy9986619: 如果为了维护而把行走写在动物,要机器人继承动物的 11/18 00:26
17F:→ toy9986619: 话就会变得很怪 11/18 00:26
18F:→ toy9986619: 所以写成介面,预先告知有哪些method 11/18 00:29
19F:→ toy9986619: 实作介面的class必须实作出在介面定义的method 11/18 00:29
20F:→ toy9986619: 这样用介面的变数(遥控器)去参考物件(实体)时才能进 11/18 00:29
21F:→ toy9986619: 行操作 11/18 00:29