多态 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 alloc] init];

    worker.name = @"工人";

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

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

    king.name = @"国王";

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

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

转自:http://blog.csdn.net/qq_31810357

时间: 2024-12-27 03:21:21

多态 OC——第十天的相关文章

多态 OC——第十天

1.多态  父类指针指向子类对象      没有继承就没有多态      联系前面知识才能清楚什么是多态,所以放到最后面总结小知识点,有前面的知识会对多态更好的了解,会觉得简单很多,但是看此篇博文需要有前面的基础,下面带大家看下: 封装:隐藏内部实现,稳定外部接口.            封装就是定义类 定义属性 定义方法 属性:封装了setter get方法  Person.h @property(nonatomic,retain)NSString *name,*sex; 类封装了实例变量和方

OC基础之访问修饰符

做C#.Java的人都知道private.protect.public这些访问权限,在OC中看项目基本都没用到这些,昨天就好奇的仔细了解了下,其实OC中也是有这些访问权限的修饰.说实话有好多做过编程的也未必对这些基础知识了解. 1.分清属性和变量的区别 属性是对变量的封装,可以通过属性(get\set)方法来访问变量.例如有一些变量(例如年龄.性别等)在赋值或取值要满足一些条件,那如何解决呢? 于是属性就应运而生,用它的get.set方法来解决这个问题 ,这也是面向对象中封装的体现. 2.pri

封装、继承、多态 求讲解

问题描述 大神们,给我详细讲解下封装.继承多态小弟第一次在这里来学习. 解决方案 解决方案二:这种问题直接百度就可以了,比在这里得到的更详细.解决方案三:同上这方面资料网上有很多,不知道楼主找了没,要善于利用谷歌百度比如--解决方案四:随便网上一搜就出来很多,有电子书的,要是看不懂的话就去听听视频,很好的,有很多例子,解决方案五:封装简单理解就是将一些属性私有化了,继承简单来说就是为了派生类,多态就是重写和覆盖,具体的得结合实例理解.解决方案六:为什么不看书,来这里问.在这详细讲解,那么讲的不会

OC面向对象—封装

一.面向对象和封装 面向对象的三大特性:封装(成员变量).继承和多态 在OC语言中,使用@interface和@implementation来处理类. @interface就好像暴露在外面的时钟表面,像外界提供展示以及接口.@implementation就好像隐藏在时钟内部的构造实现,把具体的实现封装了起来. 二.Set方法 在开发过程中,考虑到安全性要求,我们一般不在成员变量名前面使用@public.@protected等关键字修饰,而是使用Set方法来为对象提供成员变量的值.在set方法的内

C# 初学请教:多态是个什么意思,不甚明白!!多谢赐教

问题描述 C#初学请教:多态是个什么意思,不甚明白!!多谢赐教 解决方案 解决方案二:兄台你找本面向对象的书看看自然就知道了.简单的说就是你只是让一个子类们去干,至于怎么干由子类们自己决定.解决方案三:多态是指为同名的方法提供不同的实现的能力,它使得我们不用关心方法的具体实现而仅仅依靠其名称来进行调用操作.解决方案四:多态性是指以不同的方式.不同的类来实现一个公共接口的能力.譬如说,你定义了BladeMaster(剑圣).DeathKnight(死亡骑士).DaemonHunter(恶魔猎手).

求助,如何解释这段代码?

问题描述 publicclassProblem{publicstaticvoidmain(String[]args){//创建子类对象newextendsBase();}}classBase{publicBase(){test();}publicvoidtest(){System.out.println("Base!");}}//继承Base,重写test方法classextendsBaseextendsBase{@Overridepublicvoidtest(){System.out

小白想初步实现计算器的加减乘除功能。。。有图片。希望高手指点。

问题描述 [img=http://b100.photo.store.qq.com/psb?/V13Ua76q3tnLQS/oEqF0KwSvcm7XywCk2rBFXpsu0KLRAwXgzGum4*9w9Q!/b/YWfYnTujLAAAYnD6ozuBLQAA][/img]父类方法:publicabstractclassOperation{publicintNumberA{get;set;}publicintNumberB{get;set;}publicabstractvoidGetResu

关于keySet()的疑问

问题描述 在Java中Set<T>是一个接口,但是在使用HashMap时,却有一个keySet()的方法,返回的是Set对象,而且Set<String>keySet=hm.keySet();能够通过编译,并运行,很是不理解,Set是接口,接口不是不能实例化么?以下是我的代码importjava.util.HashMap;importjava.util.Iterator;importjava.util.Set;publicclassMainActivity{publicstaticv

有人搭理我不。。

问题描述 三层架构里有一个IDAL接口层SQLServerDAL和OracleDAL都实现了它这里实现它的好处是什么啊.难道就是如果再引入AccessDAL时不用更改BLL层吗?不理解..那位明白人可以说一下啊,它的好处. 解决方案 解决方案二:多态的好处,就体现出来了.还有就是依赖导致的原则就体现出来了...............解决方案三:依赖倒置解决方案四:见意LZ去弄一个多态的例子看看就明白了,如果你加一个Access的数据层,是不用改Bll的解决方案五:好处多多啊!解决方案六:关于敏