12-继承

//11 简单不写了

/*
1.重写:子类重新实现父类中的某个方法,覆盖父类以前的做法
2.注意
1> 父类必须声明在子类的前面
2> 子类不能拥有和父类相同的成员变量
3> 调用某个方法时,优先去当前类中找,如果找不到,去父类中找

2.坏处:耦合性太强
*/

#import <Foundation/Foundation.h>
// Person
@interface Person : NSObject
{
    int _age;
}

- (void)setAge:(int)age;
- (int)age;
- (void)run;
+ (void)test;

@end

@implementation Person

+ (void)test
{
    NSLog(@"Person+test");
}

- (void)run
{
    NSLog(@"person---跑");
}

- (void)setAge:(int)age
{
    _age = age;
}
- (int)age
{
    return _age;
}
@end

// 不允许子类和父类拥有相同名称的成员变量
// Student
@interface Student : Person
{
    int _no;
    // int _age;
}

+ (void)test2;

@end

@implementation Student
// 重写:子类重新实现父类中的某个方法,覆盖父类以前的做法
- (void)run
{
    NSLog(@"student---跑");
}

+ (void)test2
{
    [self test];
}
@end

int main()
{
    [Student test2];

//    Student *s = [Student new];
//
//    [s run];

    return 0;
}

  

时间: 2024-11-05 18:30:26

12-继承的相关文章

python基础之继承原理,多态与封装

1.什么是继承? 继承是一种创建新的类的方式.class A: passclass B: pass2.如何继承---->如何寻找继承关系 现实生活中找继承关系是自下而上,在程序中写是自上而下继承是一种"是"的关系:人类.猪类.狗类都是继承动物类,因为他们都是动物 3.为什么要用继承?解决代码重用问题?解决的是:什么是什么的问题-->继承 4.派生:子类继承了父类的属性,然后衍生(或派生)出自己新的属性 如果子类衍生出的新的属性与父类的某个属性名字相同 那么再调用子类的这个属

第十二章 继承

第十二章 继承 1.  什么是继承和派生? 继承: 派生: 2.  复杂的继承和派生. 3.  继承和派生如何在C++中实现. 4.  单一继承. 在实际应用中可以将 基类和派生类视为一个整体 5.  保护成员. 封装的含义: 为了解决这个问题我们引进了protected. 6.  公有派生的公有成员. 子类可以直接调用 7.  公有派生的保护成员. 子类可以通过自己间接访问 8.  公有派生的私有成员. 子类只能通过父类间接访问 在派生类中对基类成员的访问限定 其中public protect

第六章 继承和多态

1.继承有哪些特性: 1.单根性    2.传递性 2.父类的哪些成员可以被继承? 私有成员不能被继承,父类的构造 3.继承: 在C#中,如果一个类后面通过冒号又跟了另外一个类,那么我们就称冒号前面的类为子类, 冒号后面的类为父类,这种书写方式放映出来的关系就称为类的继承关系 4.子类:派生类   父类:基类或者超类 5.满足什么条件的类可以使用继承? 满足is a关系的两个类可以使用继承 例如:经理 is a 员工 6.如果new一个子类对象,那么如下操作流程: 1.先 定位到子类对应构造函数

无废话ExtJs 入门教程二十一[继承:Extend]

无废话ExtJs 入门教程二十一[继承:Extend] extjs技术交流,欢迎加群(201926085) 在开发中,我们在使用视图组件时,经常要设置宽度,高度,标题等属性.而这些属性可以通过“继承”定义在我们定义的新组件中,从而达到重用的目地. 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-

JavaScript是如何实现继承的

JavaScript中的function是万能的,除了用于的函数定义,也可以用于类的定义.JavaScript的继承,说起来也是有点怪,没有public,private等访问控制修饰,也没有implement或其他特定的符号来说明是实现继承.关于javascript类的继承可以参考一下以下这个例子.郸城县殳海环保 01 <script type="text/javascript"> 02 function Person() { 03     // 属性 04     thi

类型转换,类与类之间的转换,继承关系,继承与静态变量,子类父类重名,多继承,虚基类

 常量的基本类型转换,例如:int num(10.8),这种方式是隐式转换. 通过函数的构造函数实现转换. 类类转换函数,当构造函数不能将类型转换成基本类型时.所以就有了类类转换函数,通过这种方式. 案例: #include <iostream> class fushu { public: //通过加explicit的这种方式避免隐式转换,避免引发歧义 explicit fushu(int num) { x = num; y = num; } void print() { std::cou

杂谈2

1.  double y=1; int x=2; (1) ""+x+y--------------21.0       加号被定义为连接运算符 (2)x+y+""--------------3.0          ""在后面,加号被定义为加运算 (3)x+""+y--------------21.0         与(1)相同 2.单目,赋值,三目(从右向左运算) 数学运算(从左向右运算) 3.primitiva(栈) t

S2---深入.NET平台和C#编程的完美总结

1.NET简单解说 l 面向对象提升 OOP(Object Oriented  Programming)面向对象编程 AOP:(Aspache  Oriented Programming):面向切面编程 OOD(Object Oriented  Designer)面向对象设计(架构师)   3万/month OOA(Object Oriented  Analysis)面向对象分析  (分析师) 10万/month DBA(Database Administrator,简称DBA) l 泛型集合对

OC课堂随笔——类

1.类的定义 类=属性+方法 --属性代表类的特征 --方法是类能对变化做出的反应 类定义的格式:类的声明和类的实现组成 --接口(类的声明):@interface 类名:基类的名字 .类名的首字母要大写 .冒号表示继承关系,冒号后面的类是父类 .NSObject是所有类的基类 .类的声明放在“类名+.h文件中,要由两部分组成:实例对象和方法声明” --实现(类的实现):@implementation类名 .方法实现 都用@结束 2.类的使用 .oc中对象通过指针来声明.如ClassA*obje

java--多线程(1)--黑马程序员

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 多线程(1) 主要内容:< 多线程概述与例子.实现的方式1.获取线程的名称.优先级.sleep.join.yield.setDeamon.stop_interrupt.实现的方式2.Lock锁.死锁> 1.多线程概述 1.进程:  1).这是"操作系统"中的概念,每个独立运行的程序,就是一个"进程":  2).一个操作系统可以维护多个"进程&