iOS- 利用里氏代换原则处理动画类的继承问题

# 关于利用里氏代换原则处理动画类
在项目中进行动画的实现的时候,为了方便,通常会创建一个虚类,然后让其子类继承其父类的方法并进行重写,这样,父类便可以让子类进行其初始化,并且父类可以调用其子类的方法。
{首先创建一个虚类,这里定义为SourceView,然后创建其两个子类,重写其方法,最后由子类进行初始化初始化出来一个父类的对象,让父类的这个对象调用子类的方法}
`//
//  SourceView.h
//  里氏代换原则
//
//  Created by 程磊 on 15/5/14.
//  Copyright (c) 2015年 程磊. All rights reserved.
//


#import <UIKit/UIKit.h>


@interface SourceView : UIView


/**
 *  定义一个函数方法,不进行具体的操作
 */
- (void)show;


- (void)hide;


@end
`//
//  SourceView.m
//  里氏代换原则
//
//  Created by 程磊 on 15/5/14.
//  Copyright (c) 2015年 程磊. All rights reserved.
//


#import "SourceView.h"


@implementation SourceView


- (void)hide{
	
}


- (void)show{
	
}
@end
`//
//  SonView1.h
//  里氏代换原则
//
//  Created by 程磊 on 15/5/14.
//  Copyright (c) 2015年 程磊. All rights reserved.
//


#import "SourceView.h"


@interface SonView1 : SourceView


@end
`//
//  SonView1.m
//  里氏代换原则
//
//  Created by 程磊 on 15/5/14.
//  Copyright (c) 2015年 程磊. All rights reserved.
//


#import "SonView1.h"


@implementation SonView1


/**
 *  重写父类的方法
 */
- (void)hide{
	NSLog(@"SonView1 hide");
}


- (void)show{
	NSLog(@"SonView1 show");
}
@end
`这样,在viewController中便可以这样进行初始化`
`//
//  ViewController.m
//  里氏代换原则
//
//  Created by 程磊 on 15/5/14.
//  Copyright (c) 2015年 程磊. All rights reserved.
//


#import "ViewController.h"
#import "SourceView.h"
#import "SonView1.h"
#import "SonView2.h"


@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad {
	[super viewDidLoad];
	//定义一个虚类,然后在初始化的时候用其子类进行初始化,这样的话,在进行初始化完成之后可以调用子类的方法
	SourceView *sourceView = [[SonView1 alloc] initWithFrame:CGRectMake(10, 100, 100, 100)];
	sourceView.backgroundColor = [UIColor redColor];
	[self.view addSubview:sourceView];
	
}




@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值