简单的封装继承多态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的封装继承多态相关的知识,希望对你有一定的参考价值。

首先创建一个工程, 然后创建一个动物类(Animal),然后再创建一个猫类和一个狗类,最后创建一个人类来给动物喂食。

动物类继承NSObject

而猫类和狗类继承动物类

人类喂食也继承NSObject

 

 

 

动物类

//类的声明

#import <Cocoa/Cocoa.h>

@interface Animal : NSObject
-(void)jiao;
-(void)eat;
@end

//类的实现
#import "Animal.h"

@implementation Animal
-(void)jiao
{
    NSLog(@"");
}
-(void)eat
{
    NSLog(@"");
}
@end

猫类

#import "Animal.h"

@interface Cat : Animal
-(void)jiao;
@end




#import "Cat.h"

@implementation Cat
-(void)jiao
{
    NSLog(@"喵喵叫");
}
-(void)eat
{
    NSLog(@"猫吃鱼");
}
@end

 

 

人类喂食

 

#import <Foundation/Foundation.h>
#import "Animal.h"
@interface Weishi : NSObject


-(void)feed:(Animal *) animal;
@end




#import "Weishi.h"

@implementation Weishi
-(void)feed:(Animal *)animal
{
    [animal eat];
}
@end

 

最后在主函数里面实例化对象

#import <Foundation/Foundation.h>
#import "Animal.h"
#import "Cat.h"
#import "Dog.h"
#import "Weishi.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
       
        id test=[[Animal alloc]init];
        [test jiao];
        
        Animal *test1=[[Cat alloc]init];
        [test1 jiao];
        
        id test2=[[Dog  alloc]init];
        [test2  eat];
        
        id test3=[[Weishi alloc]init];
        [test3 feed:test2];
    
    }
    return 0;
}

最后得到下面的。

 

技术分享

 

当然这基本是最简单了。

以上是关于简单的封装继承多态的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE学习总结——封装,继承,多态很简单

继承 封装 多态 简单介绍

简单的封装继承多态

OOP三大核心封装继承多态

代码的想法

php类的封装继承和多态的简单理解