![](/img/trans.png)
[英]Android Room and inheritance. error: Multiple fields have the same columnName
[英]Java: Implement the same interface multiple times due to inheritance. Is it ok?
這個問題主要與繼承和擴展的工作方式有關。
我目前有以下幾點:
public class Client extends BaseClient { ... }
和
public class BaseClient extends MinimalisticClient { ... }
它們之間的主要區別在於它們持有(從數據庫中獲取)的參數(數據)數量。
我想要做的是為每個單獨的接口創建一個只包含 getter 的接口。
所以,它會是這樣的:
public interface IMinimalisticClient { getters }
public class MinimalisticClient implements IMinimalisticClient { ... }
public interface IBaseClient extends IMinimalisticClient { the extra getters }
public class BaseClient extends MinimalisticClient implements IBaseClient { ... }
public interface IClient extends IBaseClient { the extra extra getters }
public class Client extends BaseClient implements IClient { ... }
以 BaseClient 為例。 當我擴展 MinimalisticClient 時,我默認將 IMinimalisticClient 實現到 BaseClient 中。 但是,我還實現了 IBaseClient ,它也擴展了 IMinimalisticClient 。 這是可以接受的嗎? 我在做一些完全愚蠢的事情嗎?
順便提一下,我這樣做只是因為該軟件將在廉價的 android 設備上運行,而且我必須盡可能地管理內存使用情況。
這工作正常,但您應該問問自己為什么需要這些接口。 如果您沒有接口的多個實現,那么首先您似乎沒有理由擁有它們。
是的,這是可以接受的。 由於接口不是父類(並且不能在層次結構中向上移動),因此在實現中多次使用相同的接口是完全可以接受的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.