5

このクラス階層を考えてみましょう:

  • Book extends Goods
  • Book implements Taxable

ご存知のように、サブクラスとそのスーパークラス (is-a) の間には関係があります。

Q: と の間に is-a のような関係はありBookますTaxableか?

良い回答ですが、「is-a」は と の間の関係でもあるとおっしゃいましたBookTaxable「 is-a」はクラス間の関係であり、インターフェイスはクラスではありません。

4

8 に答える 8

8

はい。関係は全く同じ

本も課税対象です。

編集

インターフェイスは、たまたま Java の (そしておそらく C# のことはわかりません)interfaceキーワードに一致するアーティファクトです。

OO インターフェイスでは、クラスが「コミット」されて実行される操作のセットであり、それ以上のものはありません。オブジェクト クラスとそのクライアント間の契約のようなものです。

キーワードを持たない OO プログラミング言語にはinterface、まだクラス インターフェイス OO の概念があります。

于 2009-06-26T16:59:21.360 に答える
5

さて、「操作のサポート」があります。個人的には、「is-a」や「can-do」などのニーモニックが非常に役立つとは思いません。私は、タイプが既存の動作を特殊化するのか、動作自体を実装するのかなど、型が許可するものという観点から考えるのを好みます。抽象化のような類推は、漏れやすい傾向があります。インターフェイスの継承と実装の継承の違いを知っていれば、それを表現するために余分な表現は必要ないでしょう。

于 2009-06-26T16:59:41.593 に答える
3

「…のように振る舞う」

それが私が言うことです。何かではなく、何かのように振る舞う。または、代わりに「何かをすることができます」が、それは行動よりも具体的です。

于 2009-06-26T16:59:06.043 に答える
2

あるクラスが別のクラスを拡張すると言うとき、それは「継承」として知られる強い関係を持っています。これは、1 つの子が親を拡張すると、子は馬 IS A 動物のような親クラスから何かを継承できる必要があることを意味します。馬はいくつかのプロパティを継承していますanimal .しかし、クラスが別のクラスを実装する場合、子クラスはコントラクトを実装しようとしますが、コントラクトの直後に親から何も継承する必要はありません. (子クラスが継承するため)そして、いくつかを抽象化することができます。

したがって、私にとって拡張は、contract.hope を実装する際の継承とインターフェイスです。

于 2013-09-28T14:53:00.330 に答える
1

これは次のことを行う必要があります。

public static boolean implementsInterface(Object object, Class interf){
    return interf.isInstance(object);
}

例えば、

 java.io.Serializable.class.isInstance("a test string")

true と評価されます。

from:オブジェクトがインターフェイスを実装しているかどうかをテストする

于 2009-06-26T17:00:29.660 に答える
0

すべての興奮は何ですか?複数の疑問符と複数の感嘆符?

課税対象はインターフェースですが、本が課税対象であると言えるのは気になりませんか?落ち着いてください。

クラスとインターフェースおよびスーパークラスとの関係については、言語に異なるキーワードがありますが、その関係の概念的な性質は同じであるため、同じ英語の用語を使用して説明することは完全に合理的です。本が良いものであるように、本は課税対象です。用語をさらに近づけるために、本は課税対象アイテムです。大丈夫です。

于 2009-06-26T18:17:45.153 に答える
0
Book implements Taxable

Bookここでもとの関係Taxable

本は課税対象です

これを参照してください。あなたはそれが言うのを見ることができます

継承について話すとき、最も一般的に使用されるキーワードはextendsimplementsです。これらの単語は、あるオブジェクトが別のオブジェクトのタイプであるかどうかを決定します。

于 2012-07-04T07:05:56.920 に答える