Diferença entre uma classe-mãe e uma super classe
5 answers
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.
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
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.
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:
C.f1
A - > C. F1 chamada
C.f3
C - > C. F3 chamada
B - > A::B.f2 chamada