继承、多态、封装、类别
面向对象的3大特征:继承、多态、封装
继承
继承:把所有子类的相同的属性和行为抽象出来,组成一个新的类,这个类就叫做父类。
特点:“子承父业”,父类有什么子类就会有继承什么。
单一性:子类只能继承一个父类。
传递性:子类可以继承父类,父类的父类的方法和属性。
满足 is a 的就是继承关系。即B属于A类,就可以使用继承,B可以继承A,但切记不要为了继承而继承。(1)父类的被保护(Protected)和共有(Public)的成员变量,子类即可访问和继承,如果是私有的,则不可访问也不可继承;
(2)子类特有的方法,称作扩展,在子类声明和实现;
(3)父类的方法满足不了子类的需求,子类重写父类的方法,重写的方法在子类的.m文件中,方法名与父类一样,当使用子类对象调用此方法时,调用子类的方法;既要描述子类的重写方法,又要调用父类的此方法时,在重写的方法里调用父类的这个方法,如[super breath]
多态
多态:对同一种行为作出不同的反应,同一个方法的不同表现。
(1)产生多态的条件:1、必须有继承 2、父类指向子类的指针,如 Animal *an = [Dog alloc]init]; 3、子类必须重写父类的方法
(2)多态在程序运行的时候,才能确定执行哪个方法
封装
封装就是对类中的一些字段、方法进行保护,不被外界所访问到,有一种权限的控制功能。
封装可以把我们想要的功能归结到一个类里,只暴露要的的方法和属性。
类别:给已有的类扩充方法,一般是系统的类。
(1)一般不能给已有类添加成员变量,但确实需要对类的属性进行扩充,可通过runtime机制添加。
(2)扩充的方法与之前类中的方法名完全一样,优先调用类别中的方法;
(3)继承不能访问私有成员变量,类别可以
网友评论