多态 OC——第十天

简介:
1、多态  父类指针指向子类对象
     没有继承就没有多态
     联系前面知识才能清楚什么是多态,所以放到最后面总结小知识点,有前面的知识会对多态更好的了解,会觉得简单很多,但是看此篇博文需要有前面的基础,下面带大家看下:

封装:隐藏内部实现,稳定外部接口.

           封装就是定义类 定义属性 定义方法

属性:封装了setter get方法 
Person.h
@property(nonatomic,retain)NSString *name,*sex;

类封装了实例变量和方法

#import 

@interface Person : NSObject

{

    NSString *_name;

    NSString *_sex;

    int _age;


}
——————————————————————————————————————————————

@property(nonatomic,retain)NSString *name,*sex;

@property(nonatomic,assign)int age;

- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(int)age;

-(Person *)work;

@end

==============================================
Person.m

#import "Person.h"

@implementation Person

@synthesize name = _name,sex = _sex,age = _age;

- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(int)age

{

    self = [super init];

    if (self) {

        self.name = name;

        self.sex = sex;

        self.age = age;

    }

    return self;

}

- (Person *)work

{

    NSLog(@"%@正在工作",self.name);

    return 0;

}

@end

2、继承:子类可以直接复用父类中的成员.子类继承父类所有方法的声明和实现 非私有的实例变量以及协议 继承是要在.h中声明一下 继承具有单根性和传递性
 继承就是代码优化公共部分交给父类
#import "Person.h"
@interface Worker : Person
@end

#import "Person.h"
@interface King : Person
@end

3、多态:不同对象对同一消息的不同响应.子类可以重写父类的方法

多态就是允许方法重名 参数或返回值可以是父类型传入或返回

#import "AppDelegate.h"

#import "Worker.h"

#import "Actor.h"

#import "King.h"

Worker *worker = [[Worker allocinit];

    worker.name = @"工人";

    [worker work];//worker 可以换为父类型Person

    King *king = [[King alloc]init];

    king.name = @"国王";

    [king work];//king可以换为父类型Person

欢迎学习本文档,未经博主允许,不得私自转载!

转自:http://blog.csdn.net/qq_31810357
相关文章
|
1月前
|
存储 C++
【C++初阶】第三站:类和对象(中) -- 日期计算器
【C++初阶】第三站:类和对象(中) -- 日期计算器
|
8月前
|
XML 存储 设计模式
2023-7-26-第二十三式解释器模式
2023-7-26-第二十三式解释器模式
60 0
|
9月前
|
Java 程序员
【JavaSE】Java基础语法(二十):多态
1. 多态的概述 什么是多态 同一个对象,在不同时刻表现出来的不同形态 多态的前提 要有继承或实现关系 要有方法的重写 要有父类引用指向子类对象
|
9月前
|
Java Windows 内存技术
Com.Java.Basis第十一课 《抽象+多态》(一)
Com.Java.Basis第十一课 《抽象+多态》(一)
35 0
Com.Java.Basis第十一课 《抽象+多态》(一)
|
9月前
Com.Java.Basis第十一课 《抽象+多态》(二)
Com.Java.Basis第十一课 《抽象+多态》(二)
38 0
Com.Java.Basis第十一课 《抽象+多态》(二)
|
9月前
|
Java
【JavaSE】Java基础语法(四十三):反射
概述: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法(包括私有的);对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的); 这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.
|
10月前
|
C++
C++ Primer Plus 第十三章答案 类继承
只有聪明人才能看见的摘要~( ̄▽ ̄~)~
54 0
|
C语言 iOS开发
OC 底层知识(二): KVO
OC 底层知识(二): KVO
155 0
OC 底层知识(二): KVO
|
Java Android开发
ART世界探险(10) - 异常处理
对于编译Java的话,有一个问题不能不考虑,就是异常处理的问题。异常处理是基于Java的语句块的,翻译成本地代码的话,需要针对这些指令的地址进行一下重排。 我们来看下ART是如何实现异常处理的。
1633 0