Pergunta

Considere esta hierarquia de classes:

  • Book extends Goods
  • Book implements Taxable

Como sabemos, há uma relação entre uma subclasse e sua superclasse (é-a).

Q: Existe alguma relação como "é-um" entre Book e Taxable

?

boas respostas, mas você disse que "é-um" é também uma relação entre Book e Taxable, e "é-um" é uma relação entre aulas , e uma interface não é uma classe!

Foi útil?

Solução

Sim. A relação é exatamente o mesmo

Livro é um Tributável também.

Editar

Uma interface é um artefato que acontece para coincidir com Java (e provavelmente C # Eu não sei) interface palavra-chave.

Interface Em OO é o conjunto de operações que uma classe é 'comprometida' executar e nada mais. É como um contrato entre a classe de objeto e seus clientes.

linguagens de programação OO cujos não têm palavra-chave interface, ainda tem conceito OO interface de classe.

Outras dicas

Bem, há "apoia-os-operações-of". Pessoalmente eu não encontrar o "é-um", "pode-fazer" etc mnemônicos para ser extremamente útil. Eu prefiro pensar em termos do que os tipos permitir que, se eles estão especializado comportamento existente ou implementar o comportamento si etc. analogias, como abstrações, tendem a ser furado. Se você sabe o que a diferença entre herança de interface e herança de implementação é, você provavelmente não precisa de qualquer fraseologia extra para expressá-lo.

"se comporta como ..."

Isso é o que eu diria. Não é algo, mas se comporta como algo. Ou como uma alternativa "pode ??uma coisa", mas isso é mais específico do que o comportamento.

a relação seria como indicado: 'implementos'

esses nomes de relacionamento brotar de uso em frases. "Livro 'é-um' Produtos" pode ser escrita sem as aspas e hífen e faz sentido. Da mesma forma, Tributável livro implementos 'pode ser escrita sem as aspas.

Quando dizemos que uma classe se estende outra classe que está a ter forte relação navio conhecido como 'inheritance'.this meios quando uma criança se estende pai então criança deve ser capaz de algo herdar de uma classe pai como cavalo é um animal .Horse está herdando algumas propriedades de animais .Mas quando uma classe implementa uma outra classe, em seguida, classe criança está tentando implementar uma necessidade contrato dosen't a qualquer coisa herdar do pai apenas seguindo um contrato, por isso interface de todos os métodos são abstratos por padrão, mas você pode fornecer algum concreto método em sala de aula (para a classe filho para herdar) e pode fazer alguns dos então abstrato está bem.

Então, para mim se estende é a herança ea interface na implementação contract.hope isto é satisfatório

Isso deve fazer:

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

Por exemplo,

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

avaliada como verdadeira.

De: se implementos objeto de interface

O que é toda a excitação sobre? Os múltiplos pontos de interrogação e vários pontos de exclamação?

Incomoda-lhe que podemos dizer que um livro é tributável, embora tributável é uma interface? Por favor, acalme-se.

Existem diferentes palavras-chave no idioma para um relacionamento class' para uma interface e uma superclasse, mas a natureza conceitual desse relacionamento é o mesmo, portanto, é perfeitamente razoável usar os mesmos termos em inglês para descrevê-lo. Um livro é tributável, assim como um livro é uma boa. Para trazer os termos ainda mais perto, um livro é um TaxableItem. É ok.

Book implements Taxable

Aqui também a relação entre Book e Taxable é

Livro 'é um' Tributável

Consulte este . Você pode ver que diz

Quando falamos em herança a palavra-chave mais comumente usado seria estende e implementos . Estas palavras iria determinar se um objeto IS-A tipo de outro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top