A.继承的实现: is a

1.不允许子类、父类存在相同的成员变量
2.方法调用优先原则:子类调用方法的时候,优先从本类寻找,若无则向上在父类中寻找
3.重写:子类重新实现父类的方法,覆盖父类之前的方法
4.无论对象方法或类方法都可以重写
5.缺点:致使耦合性增强
6.OC只能单继承
 
B.组合的实现: has
1.不使用继承,而是将某个类作为成员变量,就可以使用其成员变量和方法
 
C.super关键字
对象方法和类方法都可以使用super调用父类的方法
 #import <Foundation/Foundation.h>

 @interface Zombie : NSObject
- (void) walk;
+ (void) test;
@end @interface JumpZombie : Zombie
- (void) walk;
+ (void) test;
@end @implementation Zombie
- (void) walk
{
NSLog(@"往前挪两步");
} + (void) test
{
NSLog(@"哈哈");
}
@end @implementation JumpZombie
- (void) walk
{
NSLog(@"跳两下");
[super walk];
} + (void) test
{
NSLog(@"呵呵");
[super test];
} @end int main()
{
JumpZombie *jz = [JumpZombie new];
[jz walk];
[JumpZombie test];
return ;
}
 

[Objective-c 基础 - 2.3] 继承、组合的更多相关文章

  1. Python开发基础-Day19继承组合应用、对象序列化和反序列化,选课系统综合示例

    继承+组合应用示例 class Date: #定义时间类,包含姓名.年.月.日,用于返回生日 def __init__(self,name,year,mon,day): self.name = nam ...

  2. python基础之继承组合应用、对象序列化和反序列化,选课系统综合示例

    继承+组合应用示例 1 class Date: #定义时间类,包含姓名.年.月.日,用于返回生日 2 def __init__(self,name,year,mon,day): 3 self.name ...

  3. 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成员)

    [源码下载] 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成 ...

  4. JavaScript-原型&原型链&原型继承&组合函数

    小小的芝麻之旅: 今天学习了js的原型,要说原型,我们先简单说一下函数创建过程. 原型 每个函数在创建的时候js都自动添加了prototype属性,这就是函数的原型,原型就是函数的一个属性,类似一个指 ...

  5. HTML&CSS基础-样式的继承

    HTML&CSS基础-样式的继承 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HTML源代码 <!DOCTYPE html> <html> & ...

  6. c++ 基础知识回顾 继承 继承的本质就是数据的copy

    c++ 基础知识笔记 继承 什么是继承 继承就是子类继承父类的成员属性以及方法 继承的本质就是 数据的复制 是编译器帮我们做了很多操作 class Base { public: Base(){ cou ...

  7. python基础之类的继承与派生、组合、接口与归一化设计、抽象类、子类中调用父类方法

    一.什么是继承 继承是一种创建新的类的方式,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类. 派生:子类继承了父类的属性,然后衍生出自己新的属性,如果子类衍生出的新 ...

  8. Python基础系列讲解——继承派生和组合的概念剖析

    Python作为一门面向对象的语言,它的面向对象体系中主要存在这么两种关系,一个是“类”和“实例”的关系,另一个是“父类”和“子类”的关系. 所谓“类”是从一堆对象中以抽象的方式把相同的特征归类得到的 ...

  9. Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类

    一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...

随机推荐

  1. PHP简单语法

    PHP简单语法 声明变量 $var_name="1"; $var_num=1; $var_bool=true; var_dump"函数可以将我们的变量的数据类型显示出来. ...

  2. 新的HTTP框架:Daraja Framework

    https://www.habarisoft.com/daraja_framework.html

  3. QTreeView只显示指定驱动器及其目录,隐藏所有兄弟节点

    MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setup ...

  4. Foreman--管理PuppetClient

    一. 环境: 1. server: puppetmaster+activemq+foreman1.3 server1.xxx.com(10.8.1.201) 2. client: fedora 19 ...

  5. 转: 解决MSYS2下的中文乱码问题

    解决方案 新建/usr/bin/win: 12 #!/bin/bash$@ |iconv -f gbk -t utf-8 新建/etc/profile.d/alias.sh: 12345678 ali ...

  6. Java实现文件复制

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** * & ...

  7. 结构体 lock_sys

    typedef struct lock_sys_struct lock_sys_t; extern lock_sys_t* lock_sys; struct lock_sys_struct{ hash ...

  8. bzoj1385: [Baltic2000]Division expression

    欧几里得算法.可以发现规律,a[2]作为分母,其他作为分子,必定是最好的选择.判断是否为整数即可. #include<cstdio> #include<cstring> #in ...

  9. BZOJ3155: Preprefix sum

    题解: 写过树状数组搞区间修改和区间求和的就可以秒出吧... 代码: #include<cstdio> #include<cstdlib> #include<cmath& ...

  10. windows ssh RPi 2B

    /************************************************************************* * windows ssh RPi 2B * 声明 ...