Herança e Substituição de Métodos
Crie hierarquias de classes em Objective-C com herança de subclasses, substitua métodos herdados e invoque a superclasse usando super.
Herança e Substituição de Métodos é uma aula grátis de Objective-C iOS Development for Legacy & Enterprise Apps no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Objective-C iOS Development for Legacy & Enterprise Apps, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Objective-C iOS Development for Legacy & Enterprise Apps inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
What is Inheritance?
Inheritance lets a class reuse and extend another class. The new subclass gets all the methods and properties of its superclass, then adds or changes behavior.
Declaring a Subclass
The colon syntax in the interface declares the superclass. Here Dog inherits from Animal.
@interface Dog : Animal
- (void)fetch;
@endInherited Members
A subclass automatically has the superclass's public methods and properties — no need to redeclare them.
Dog *d = [[Dog alloc] init];
[d eat]; // inherited from Animal
[d fetch]; // defined on DogOverriding a Method
To change inherited behavior, redeclare a method with the same name in the subclass. This is overriding.
@implementation Dog
- (void)makeSound {
NSLog(@"Woof!");
}
@endCalling super
Use super to invoke the superclass version, extending rather than replacing its behavior.
- (void)makeSound {
[super makeSound];
NSLog(@"...and wags tail");
}Overriding init
Custom initializers almost always call [super init] first to set up inherited state, then add their own.
- (instancetype)init {
self = [super init];
if (self) {
_legs = 4;
}
return self;
}Polymorphism
A superclass-typed variable can hold any subclass instance. The correct overridden method runs at runtime — this is polymorphism.
Animal *pet = [[Dog alloc] init];
[pet makeSound]; // prints Woof!The instancetype Return
Initializers return instancetype, which adapts to the actual class being created — safer than hardcoding the type.
+ (instancetype)dogWithName:(NSString *)name;Checking Class at Runtime
Objective-C is dynamic. You can ask an object about its class.
if ([pet isKindOfClass:[Dog class]]) {
NSLog(@"It is a dog");
}NSObject the Root
Almost every class ultimately inherits from NSObject, which provides core behavior like alloc, init, isEqual:, and memory management hooks.
Designing Hierarchies
Favor shallow hierarchies. Use inheritance for genuine is-a relationships; for shared behavior across unrelated classes, prefer protocols and categories instead.
Quick Check
Test your inheritance knowledge.
Recap
You learned inheritance in Objective-C:
- Subclass with the
: Superclasssyntax - Inherited methods and properties come for free
- Override methods to change behavior
- Use
superto extend the parent version - Polymorphism picks the right method at runtime
Inheritance and polymorphism are pillars of OOP in Objective-C.
Perguntas Frequentes
A aula “Herança e Substituição de Métodos” é grátis?
Sim — o texto completo de “Herança e Substituição de Métodos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Objective-C iOS Development for Legacy & Enterprise Apps, atualize para CoddyKit PRO. O curso de Objective-C iOS Development for Legacy & Enterprise Apps inclui 4 aulas no total.
O que vou aprender em “Herança e Substituição de Métodos”?
Crie hierarquias de classes em Objective-C com herança de subclasses, substitua métodos herdados e invoque a superclasse usando super. Você pratica Objective-C iOS Development for Legacy & Enterprise Apps com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Objective-C iOS Development for Legacy & Enterprise Apps?
Nenhuma experiência prévia é necessária. Objective-C iOS Development for Legacy & Enterprise Apps no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Herança e Substituição de Métodos”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Objective-C iOS Development for Legacy & Enterprise Apps?
Sim. Cada aula de Objective-C iOS Development for Legacy & Enterprise Apps inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Classes, Objetos e Métodos
- Propriedades e Variáveis de Instância
- Protocolos e Categorias
- Herança e Substituição de Métodos