图灵社团第一次培训(继承和多态)

简介:

继承:继承是使用已存在的类的定义作为基础建立新类的技术,新类继承旧类,就可以实用旧类的部分数据。例如实例变量的继承和方法的继承。

旧类Aaa

@interfance Aaa:NSObject

{

int val;

}

-(int)intVar;

@end

@implementation Aaa

-(int)intVar

{

var=1000;

return var;

}

@end

新类Abb

#import"Aaa.h"

@interface Abb:Aaa

-(void)print;

@end

Abb.m

-(void)print

{

NSLog(@"%i",var);


}

main.m

Abb *a=[[Abb alloc]init];

NSLog(@"%i",[a intVar]);//Abb继承了Aaa的方法

多态:既然类与类之间的方法和变量可以继承,那在新类中,是否可以重写旧类的方法。当然可以啦,这就是多态的啦(有C++基础的童鞋对此一定能很快的接受并理解)

例如上面的例子

在Abb.m

-(int)intVar

{

NSLog(@"虽然在Abb,但我重写了Aaa中的方法");

}

我们可以多态式滴重新书写-(int)intVar;这个方法

Aaa *a=[[Aaa alloc]init];

Abb *b=[[Abb alloc]init];

[a print];

[b print];

目录
相关文章
|
存储 编译器 C++
【C++从0到王者】第三站:类和对象(中)拷贝构造函数
【C++从0到王者】第三站:类和对象(中)拷贝构造函数
55 0
|
6月前
|
编译器 C++
C++-带你走进多态(1)
C++-带你走进多态(1)
37 0
|
5月前
|
Java
Java面向对象编程新篇章:多态,你准备好了吗?
【6月更文挑战第17天】Java的多态性是面向对象编程的核心,它允许通过统一的接口处理不同类型的对象。例如,在一个虚拟宠物游戏中,抽象类`Pet`定义了`speak()`方法,猫、狗和鹦鹉等子类各自重写此方法以实现独特叫声。在`main`方法中,使用`Pet`类型的引用创建子类对象并调用`speak()`,多态机制确保调用实际对象的方法,实现代码的灵活性和可扩展性。通过多态,我们能以更低的耦合度和更高的复用性编写更优雅的代码。
38 3
|
1月前
|
存储 编译器 C++
【C++类和对象(下)】——我与C++的不解之缘(五)
【C++类和对象(下)】——我与C++的不解之缘(五)
|
1月前
|
编译器 C++
【C++类和对象(中)】—— 我与C++的不解之缘(四)
【C++类和对象(中)】—— 我与C++的不解之缘(四)
|
1月前
|
存储 编译器 C语言
【C++类和对象(上)】—— 我与C++的不解之缘(三)
【C++类和对象(上)】—— 我与C++的不解之缘(三)
|
5月前
|
Java
震惊!Java子类竟能“继承”父类财富,还能“自立门户”添新招!
【6月更文挑战第16天】Java的继承支持类的层次结构,子类(如`SportsCar`)继承父类(如`Car`)的属性和方法。`SportsCar`不仅拥有`Car`的基本功能,还能添加独特属性(如最高时速、加速时间)和方法(如氮气加速),并能重写父类方法以扩展功能。此机制促进代码复用,提高效率。例如,`SportsCar`调用`super.accelerate()`执行基本加速,并添加跑车特有的加速效果。
42 8
|
6月前
|
编译器
C++-带你走进多态(2)
C++-带你走进多态(2)
37 0
|
存储 算法 编译器
虚函数和多态+虚析构函数 知识点总结 C++程序设计与算法笔记总结(五) 北京大学 郭炜
虚函数和多态+虚析构函数 知识点总结 C++程序设计与算法笔记总结(五) 北京大学 郭炜
68 0
|
存储 编译器 C语言
【C++精华铺】4.C++类和对象(上)面向对象、类、this指针
class为定义类的关键字,{}中的内容为类的类体,里面定义的内容称之为成员,类中的变量称之为类的属性或者类的成员变量,ClassName为类名,并且大括号后面的分号”;“一定不能省略。//类体类有俩种定义方式:声明和定义全部放在类体中(成员函数在类体中定义,编译器可能会将其作为内联函数处理)class Datepublic://private:int _year;int _month;int _day;类声明放在.h文件中,成员函数定义在.cpp文件中(成员函数前要加上。