Objective-c 类的继承 方法重写 方法重载

一、类的继承

Objective-c中类的继承与C++类似,不同的是Objective-c不支持多重继承,一个类只能有一个父类,单继承使Objective-c的继承关系很简单,易于管理程序。
Objective-c中所有类的父类是NSObject。

Objective-c中类的继承例子:

[cpp] view plaincopy

  1. @interface Person: NSObject {
  2. NSString* name;
  3. int age;
  4. }
  5. - (NSString*) name;
  6. - (int) age;
  7. - (void) setName: (NSString*) input;
  8. - (void) setAge: (int) input;
  9. @end;

二、方法重写

在Objective-c中,子类可继承父类中的方法,而不需要重新编写相同的方法,直接可以使用父类的方法。
但有时我们不想使用使用父类方法,而是想作一定的修改,怎么办呢?只要将子类中书写一个与父类具有相同的方法名、返回类型和参数,就可以将将父类的方法覆盖重写。比较简单。

三、方法重载

在Objective-c中,方法是不能重载的。也就是说我们不能在类中定义这样的两个方法:它们的名子相同,参数个数相同,参数类型不同,不同的返回值类型。否则Xcode会报错。
下面定义的方法是错误的:

[cpp] view plaincopy

  1. -(void)setX:(int)intX;
  2. -(void)setX:(double)doubleX;

这一部分相于C++而言,简单了许多。

时间: 2024-08-01 18:31:29

Objective-c 类的继承 方法重写 方法重载的相关文章

类的继承,抽象类,接口,方法重写和重载

类的继承 C#与java:1.C#中继承用“:”,Java中继承用extends2.重写父类的方法,C#中需要关键字override,Java中不需要3.C#中调用父类的成员用base,Java中使用super4.子类的构造方法中如果没有显示的调用父类的构造方法,   编译器会自动在第一行代码添加super() 抽象类: 1.含有抽象方法的类必须是抽象类,抽象类中不一定有抽象方法2.抽象类的子类如果是抽象类,可以不需要重写父类的抽象方法3.抽象类不能被实例化,构造方法和静态方法不能是抽象的 接口

继承、多态及方法重写、重载

1.多态: 多态指的是同一个方法的调用,由于对象不同可能会有不同的行为.现实生活中,同一个方法,具体实现完全不同. 多态的要点: (1)多态是方法的多态,不是属性的多态(多态与属性无关): (2)多态的存在要有3个必要条件:继承.方法重写.父类引用指向子类对象: (3)父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了. /** * - - - (1)多态是方法的多态,不死属性的多态(多态与属性无关): * - - - (2)多态的存在要有3个必要条件:继承.方法重写.父类

组合与继承之重写方法和字段

接上篇blog,scala里的字段和方法属于相同的命名空间,这让字段可以重写无参数方法.例如,你可以通过改变ArrayElement类中contents的实现将其从一个方法变为一个字段,而无需修改类Element中contents的的抽象方法定义,如例: abstract class Elements {     def contents: Array[String]     val height = contents.length     val width = if(height == 0)

访问修饰符private/protected/默认(friendly)protected 方法重写,重载

访问修饰符 本类 同包 子类 其他 private True   False False    False 默认(friendly) True   True False  False protected True True  True  False public True  True  True  True 重载:方法名相同,参数列表(参数数据类型.个数等)不同 重写:有继承才有重写,子类重写方法,方法名.返回值.参数列表相同,访问修饰符不能呢比父类更严格 package com.jredu.c

python类的继承和重写

构造方法: def __init__(self) 路径: e:/pythonpro/liuyun/class02.py #——————类的构造方法——————- class person(): name ="张翰" sex = "男" #构造方法,固定的写法:初始化类 def __init__(self,xb): self.sex = xb self.test() def test(self): print("这是test方法") d = per

面向对象概念中方法重写与重载的区别?

重载:重载一定是在同一个类当中,有一组方法名字相同,功能是类似的,但参数不同. 重写:在父子类当中,子类拥有与父类同名.同参.同返回类型的方法,可以改变父类的行为.父类加关键字virtual虚方法(为了在子类当中去重写父类的方法),子类中要加关键字override,体现了面向对象中的多态性(都不叫就不是方法的重写,而是方法的覆盖).

Java 继承与重写、重载

1.类的继承 1)继承 父类:所有子类所共有的属性和行为 子类:子类所特有的属性和行为 通过extends关键字来实现类的继承 子类(Sub class)可以继承父类(Super class)的成员变量及成员方法,同时也可以定义自己的成员变量和成员方法 Java语言不支持多重继承,一个类只能继承一个父类(单一继承),但一个父类可以有多个子类 继承具有传递性,子类的子类可以继承父类的父类的成员变量及成员方法 2)继承中构造方法(super关键字) Java规定:构造子类之前必须先构造父类 子类的构

JAVA基础总结二——继承、重写、重载相关知识点

1.继承: 1)目的:避免代码重复,有利于代码的重用 2)通过extends实现继承 3)父类/基类:所有子类所共有的属性和行为 子类/派生类:子类所特有的属性和行为 4)子类继承父类后,子类具有的方法: 子类方法+父类方法 5)一个父类可以有多个子类 一个子类只能有一个父类----单一继承 6)继承具有传递性 7)java规定:构造子类之前必须先构造父类 子类构造中若没有调用父类的构造,则默认super()来调父类的无参构造,若自己调了,则不再默认提供 super()调用父类构造,必须位于子类

复习面向对象--继承,重写,重载,抽象详解

继承:在现有的基础上去构建一个新的类.构建出来的新类被称作子类,现有类称作父类,子类会自动拥有父类所有. 继承的优点: 提高了代码的可维护性: 提高了代码的复用性: 让类与类之间产生了继承关系 继承的弊端: 类与类之间的耦合度过高:(接口可以用于解耦和) 继承的特点: java中只能够单继承,不能多继承,可以多层继承: 所有类都直接或者间接的继承了Object类,Object类称为祖宗类: 继承的注意事项: 使用关键字extends让类与类之间产生继承关系: 父类私有的成员,子类不能继承: 继承