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

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
文件:
//
使用打印机
- (void)usePrint:(Printer *)print //Printer
是父类
{
    [print printer];  //printer
是父类中的方法
}
main.m
文件:
        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———>私有的,只有本类可用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值