范德萨发生的算法发烧发烧发烧地方
发烧地方的算法手动阀盛福大厦手动阀是粉丝说的啊
范德萨范德萨算法发烧撒的发烧撒
范德萨定时发送
Java super.print OC [super print]
多态:
一门语言中如果没有多态 ,那只能算是 基于对象的 而不是面向对象的.
多态的概念:
从一个父类出来 多个形态的子类 . 举例: report 父类方法 ,可以在子类中重写成 不同的功能. 方法的重写 和方法的重载 是多态的必要手段.
注意OC中是不支持方法的重载的.
重载 是吧返回值类型 参数类型都改了 , 切记OC中是不支持的 .
--------
方法重写
子类 依然要调用 父类方法 直接用 [super print]; 就可以使用.
self 是自己 自己调用自己 就崩了.
main 调用了 子类 子类中 继承的父类 不用在main中 引入头文件 依然可以进行 实例化父类. 父类兼容子类 是个特点
举例: Printer *printer =[ [BlackPrinter allac]init];
[printer print];
同时 父类实例化对象再调用方法时 是接收过来子类方法的中重写的父类方法.
@protected 受保护
@private 私有的
父类中 私有的 成员变量 在子类中是红线无法使用的.
如果父类的方法中使用私有变量,而我们子类继承了父类的这个方法,那私有变量的操作 以及打印 我们是可以看到的,但是我们不可以在子类中直接调用私有变量
如果父类中的方法没有写声明则子类无法继承父类中对应的方法.
访问修饰符:
关于成员变量访问修饰符的问题
首先系统默认 成员变量是 受保护的
@public 共有的 在类内类外都可以使用并且可以被继承
int _classInt;
在类外调用时 用点语法调用不到 用 -> 指向 才能调用的到,
@private 私有的 在类内可以使用,类外无法调用并且 不可以被继承.
@protectrd 受保护的 在类内可以使用 在类外无法调用 并且可以被继承.
@package 框架权限 - 在框架内相当于受保护, 在框架外相当于私有.
--------
方法是没有访问修饰符的.
方法不想让它被类外使用, 那.h中就不写声明 在.m中直接写实现就好.
具体这个方法 怎么和时宜 请听下回分解
封装:
`什么是封装?
封装有调用有实现 , 类外只负责调用, 而功能的实现 是类内该做的事情.
-----
@property(nonatomic,strong) NSString *className;
`属性的创建 差点就忘干净了~
`关于初始化方法:
-(id)init; //id是万能类型 可以返回各种类型
-(instancetype)init; //instancetype是当前类的类型 比如:People类 那instancetype就返回People类型
`在初始化方法中就可以给 成员变量赋值; 叫做重写初始化方法
`自定义初始化方法
-(instancetype)initWithPeopleName:(NSString *)peopleName andPeopleAge:(int)peopleAge;
{
self = [super init];
{
_PeopleName = PeopleName;
_PeopleAge = PeopleAge;
}
return self;
}
//(int)-返回值类型 :带表有参数 (int)是参数类型 a是参数名
//函数名(方法名): 去掉返回值类型 去掉:后面的参数类型和参数名 就是方法名.
-(int)showWithA:(int)a;
-(int)showWithA:(int)a andB:(int)b;
`写方法 要记得写实现不然就崩~
OC是简单 ,主修OC了 希望早日 修成陆地神仙。
类 是 所有对象的 同步特征。
加减方法的不同
如果父类中的方法没有写声明,子类无法继承该方法。
@public 公有:在类内类外都可以使用并且可以被继承。在main函数中要用指向“->”调用成员变量
@private 私有:在类内可以使用,类外无法调用且不可继承
@protected 受保护,在类内可以使用,在类外可以继承,但是不能被调用
@package 框架权限,在框架内相当于受保护,在框架外相当于私有
对象才在前面加*
自己使用的是成员变量,提供给外部使用的是属性。
解释实例化对象
1
self调用当前类方法
调用父类方法