O-c中类的继承与派生的概念
什么是继承
众所周知,面向对象的编程语言具有: 抽象性, 封装性, 继承性, 以及多态性 的特征. 那么什么是继承呢? 传统意义上是指从父辈那里获得父辈留下的东西
在开发中,
继承就是"复用类"(拿来主义),
对类进行一定的扩展, 来创建新的对象.
实际上除了开发, 在实际生产中也是如此规律。
基类与派生类的关系
1.派生类是在基类的基础之上设计出来的, 其目的是扩展基类的功能或修改基类功能.
派生类包含了基类的所有特征与功能(子类继承了父类的所有的内容)
2, 继承是扩展基类的功能
继承允许扩展基类的功能. 例如继承父类后, 添加自己独有的方法
例如人有自我介绍的方法, 老师有教书的方法, 学生有学习的方法
3, 继承允许修改基类的功能
如果在继承中, 发现基类方法的具体实现不是非常完整或不是非常合理, 就需要利用重写的办法, 让子类修改父类的具体方法的实现.
例如, 动物会吃, 会叫, 然后子类 dog 也会吃 和 叫.
继承的注意事项
1, OC 是单继承
@interface MyClass : BaseClass
2, 子类不允许提供父类相同的变量(应该继承下来)
3, 实际开发中常常利用多层继承
4, 派生类的对象调用方法的索引顺序
Person ( sayHello() )
Student:Person ( )
SmallStudent:Student( sayHello() )
Student *stu = [Student new];
[Stu sayHello];
版权声明:本文为博主原创文章,未经博主允许不得转载。
O-c中类的继承与派生的概念的更多相关文章
- C++继承与派生的概念、什么是继承和派生
在C++中可重用性是通过继承(inheritance)这一机制来实现的.因此,继承是C++的一个重要组成部分. 前面介绍了类,一个类中包含了若干数据成员和成员函数.在不同的类中,数据成员和成员函数是不 ...
- 【C++学习笔记】继承与派生基础概念
面向对象的程序设计主要有四个特点:抽象.封装.继承和多态.其中继承是我认为最最重要的一个特性,可以说继承是面向对象的精华所在. 举一个继承的浅显易懂的例子:假如我们已经有了一个“马”的类,其中成员变量 ...
- sdut 5-1 继承和派生
5-1 继承与派生 Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 通过本题目的练习能够掌握继承与派生的概念.派生类的定义和用法.当中派生类构造函数的定义 ...
- C/C++编程笔记:C++入门知识丨继承和派生
本篇要学习的内容和知识结构概览 继承和派生的概念 派生 通过特殊化已有的类来建立新类的过程, 叫做”类的派生”, 原有的类叫做”基类”, 新建立的类叫做”派生类”. 从类的成员角度看, 派生类自动地将 ...
- C/C++基础知识总结——继承与派生
1. 类的继承与派生 1.1 派生类的定义 (1) 定义规范 class 派生类名: 继承方式 基类1名, 继承方式 基类2名... { ...派生类成员声明; }; (2) 从以上形式上看可以多继承 ...
- python 面向对象之继承与派生
一:初识继承 1,什么是继承? 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题 继承是一种创建新类的方式,在python中,新建的类 ...
- Python-类的继承与派生
python中类的继承分为:单继承和多继承 class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass class SubClass1( ...
- python之继承与派生
1 继承 继承的概念:继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类. python中类的继承分为:单继承和多继承 继 ...
- 6 python 继承与派生
1.什么是继承? 继承指的是类与类之间的关系,是一种什么“是”什么的关系,继承的功能之一就是用来解决代码重用问题 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类 父类又可以 ...
随机推荐
- 自动计算label字体的高度和图片拉伸处理(封装成分类分享)
自动计算label字体的高度和图片拉伸处理 *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bo ...
- SSAS使用MDX生成脱机的多维数据集CUB文件
在运用多维数据进行分析的时候,通常很有可能我们需要把这些多维数据脱机进行处理或演示,这其中就要用到cub文件 http://www.cnblogs.com/yunhuasheng/archive/20 ...
- oracle创建临时表
Oracle临时表可以说是提高数据库处理性能的好方法,在没有必要存储时,只存储在Oracle临时表空间中.希望本文能对大家有所帮助. 1 .前言 目前所有使用 Oracle 作为数据库支撑平台的应用, ...
- 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程02:关键帧动画导入与切割》
2. 关键帧动画导入与切割 动画的分割与导入概述: 在游戏当中,游戏角色在不同状态下会有不同的动作,这些动作在引擎里相当于一段段的动画片段.当导入模型资源的时候,连同模型动画都会一并导入到引擎中.开发 ...
- 【解决】Microsoft Visual Studio 2012 打开2008下编译的silverlight3项目
最近因为项目需要,老师要我搞一发流程设计器,毫无头绪呀妈蛋 .. 我考虑是用silverlight呢还是jquery .. 上网找了找 .. 有一个用silverlight3写的 貌似IDE用的是V ...
- Esper系列(八)Method Definition、Schema
Method Definition 作用:以公共静态方法的方式去访问外部数据. 应用说明: 1.返回数据的方法必须是公共静态方法(方法参数可以有多个也可以没有): 2.如果返回一条数据或无返回数据 ...
- ASP.Net IE10 _doPostBack 未定义错误【转】
--昨天发现IE10下面ReportViewer执行报表会报错,发现为Js报_doPostBack 未定义错误,查找相关资料发现问题为 当前framework不能识别IE10版本,把该浏览器做降级处理 ...
- 【开发工具 - Git】之Git常用命令汇总
本文记录了Git Bash中的常用指令. 1 Git操作 git clone XXXXX:将GitHub项目XXXXX克隆到本地 git remote –v:查看远程连接信息 git ch ...
- Oracle—用户管理的完全恢复(一)
一.分类 可以分为在非归档模式下和归档模式下的完全恢复,完全恢复主要是针对归档模式下的,在非归档模式下很难做到完全恢复,除非是在做恢复时,联机重做日志还没有被重写. 二.非归档的有关性质 1.在非归档 ...
- spring问题org.springframework.beans.factory.CannotLoadBeanClassException
1.看jdk是否配置正确 2.把MyEclipse里面的那个classes删除让他重新编译就没什么问题了,只要配置是对的 3.重新clean project