您的位置:首页 > 其它

【OC03-1】面向对象——封装、继承、多态(连载三)

2015-07-29 07:59 337 查看
1.OOP:面向对象编程(object oriented programing)
   OOD:面向对象设计(object oriented design)
2.封装:隐藏属性、方法、或实现细节的过程

3.OC面向的都是单继承:一个类只有一个父类,多个子类

                          多继承:一个类有多个父类,多个子类

4.子类自定义初始化方法:

   直接在父类自定义初始化方法后加入新属性

   调用父类自定义初始化方法:

   self = [super initWithBrand:brand Color:color]

   {

            if (self){

                    _maxWeight = maxWeight;

             }

              return self;

   }

5.要添加新的其他文件已有的类文件方法:

  (1)实际拷贝,再Add files to
工程名

  (2)直接Add files to
工程名

6.多态
例子:
person.m[b]文件:[/b]

//使用打印机

- (void)usePrint:(Printer *)print //Printer是父类

{

    [print printer];  //printer是父类中的方法

}
main.m[b]文件:[/b]

        Printer *p1 = [[ColorPrinter alloc] init];

        Printer *p2 = [[BlackPrinter alloc] init];

        Person *person = [[Person alloc] init];

        NSLog(@"请输入1或2:");

        NSInteger a;

        scanf("%ld", &a);

        if (a == 1) {

            [person usePrint:p1];

        }else if (a == 2){

            [person usePrint:p2];

        }else{

            NSLog(@"请输入1或2");

        }
7.在.h文件中互相#import会引起相包含,程序运行会出错,此时用@class解决,再在.m文件中使用#import

@class与#import的区别,使用@class有什么好处?
   【1】 @class:告诉编译器有这样一个类,仅仅是类的声明
   【2】 #import:导入一个头文件,获取该头文件中类的定义(属性和方法)。所有的方法都知道了
   【3】@class在编译时,速度更快
   【4】@class解决引用死锁的问题(类的扩展、代理设计模式)
             #import可能会引起相互导入,@class可以解决。
   【5】在头文件里要使用其他类,一般用@class,在实现文件用#import导入类文件。

8.
属性的权限修饰符有哪些,各有什么作用?
          [1]  @public———>公开的,所有的类都能用
          [2]  @protected—->受保护的,只有本类和其子类可用
          [3]  @private———>私有的,只有本类可用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: