Diferença entre uma classe-mãe e uma super classe

Há alguma diferença entre uma classe mãe e uma super classe? Uma super classe é simplesmente uma classe pai que não herda de outras classes?

Author: Zach Latta, 2012-10-24

5 answers

Isto é mais uma diferença de terminologia. A ideia de aulas de pais e filhos ou super e subclasses. Parece depender da experiência de linguagem de programação e domínio de aplicação a respeito de qual você usa.

Super () é como o construtor pai ou super classe para uma classe Java é invocado em uma classe derivada.

E havia uma quantidade razoável de churn na terminologia há anos, programadores mais velhos e experientes que estavam orientados a objetos no início de maio. as coisas são um pouco diferentes.

A janela do Pai e do filho também é usada para sistemas de janelas em que uma janela está contida dentro de outra janela para que a terminologia também possa ser reutilizada.

 4
Author: Richard Chambers, 2012-10-24 02:15:00

São termos diferentes para abordar o mesmo conceito OOP: herança. Se a classe ChildClass se prolongar ParentClass pode dizer:

  • ChildClass a classe-mãe é a classe ParentClass
  • ParentClass é a classe superior da classe Infantil
Os níveis de herança não têm nada a ver com isso, não importa se uma Super classe em si estende outra classe.
 3
Author: Carlos Gavidia, 2016-02-15 22:43:50
Eu diria que é a mesma coisa.

Você pode querer diferenciar entre um pai direto e indireto ou super classe, mas eu acho que os dois termos não são claros o suficiente sobre isso, também. Portanto, se é isto que está a tentar expressar, é melhor ser explícito.

Também, muitas linguagens de programação têm a palavra-chave" super " usada para se referir à classe-mãe (única) direta. Mas mesmo lá, se você chama um método "super" e o pai direto não o implementa, ele também bolhas para cima.

 2
Author: Thilo, 2012-10-24 02:12:15
São essencialmente iguais. Dependendo da linguagem, a terminologia muda. Pai pode significar o pai imediato, enquanto classe Super pode significar qualquer uma das classes ancestrais. In addition, in java, there is the super() method, which calls the parent's constructor.
 0
Author: srini.venigalla, 2012-10-24 02:14:12

Na linguagem Ruby temos ambos os conceitos que significam coisas diferentes.

ParentClass -> ChildClass -> isto é usado para o espacio de nomes

E

SuperClass -> SubClass -> isto é usado para herança

Exemplos abaixo:

ParentClass -> ChildClass:

class A
  def self.f1
    puts "A -> #{self.name}.f1 called"
  end
  # B is childclass of A
  class B
    def self.f2
      puts "B -> #{self.name}.f2 called"
    end
  end
end

# C is subclass of A
class C < A
  def self.f3
    puts "C -> #{self.name}.f3 called"
    B.f2
  end
end

Ver a saída abaixo:

  1. C.f1

A - > C. F1 chamada

  1. C.f3

C - > C. F3 chamada

B - > A::B.f2 chamada

 -1
Author: Rajesh Paul, 2017-02-24 10:09:23