IOS 获取父类的所有子类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS 获取父类的所有子类相关的知识,希望对你有一定的参考价值。

参考技术A 1、获取父类的所有子类

-(void)getSubclass



int numClasses;

Class *classes = NULL;

numClasses = objc_getClassList(NULL,0);

if (numClasses >0 )



classes = (__unsafe_unretained Class *)malloc(sizeof(Class) * numClasses);

numClasses = objc_getClassList(classes, numClasses);

for (int i = 0; i < numClasses; i++)

if (class_getSuperclass(classes[i]) == [BaseTableViewController class])

NSLog(@"%@===%@",classes[i], NSStringFromClass(classes[i]));





free(classes);





2、在添加页面统计等时,直接在父类实现添加方法,但是要读到子类的类名

比如在父类中添加友盟页面统计

-(void)viewWillAppear:(BOOL)animated



[super viewWillAppear:animated];

NSLog(@"%@",[NSString stringWithUTF8String:object_getClassName(self)]);

[MobClick beginLogPageView:[NSString stringWithUTF8String:object_getClassName(self)]];



-(void)viewWillDisappear:(BOOL)animated



[super viewWillDisappear:animated];

[MobClick endLogPageView:[NSString stringWithUTF8String:object_getClassName(self)]];

子类是不是具有父类的所有属性和方法? [复制]

【中文标题】子类是不是具有父类的所有属性和方法? [复制]【英文标题】:Do subclasses have all the properties and methods of the parent class? [duplicate]子类是否具有父类的所有属性和方法? [复制] 【发布时间】:2017-05-16 01:13:33 【问题描述】:

子类是否拥有父类的所有变量和方法?包括父类的Private属性和方法?

或者子类是否只有父类的可访问变量和方法?喜欢公共、默认、保护?

【问题讨论】:

我的问题会被删除吗? 【参考方案1】:

来自Java Language Specification, 8.2:

一个类类型的成员都有以下几种:

从其直接超类(第 8.1.4 节)继承的成员,但在没有直接超类的 Object 类中除外

从任何直接超接口继承的成员 (§8.1.5)

在类主体中声明的成员(第 8.1.6 节)

关于继承的重要部分,关于privatepublicprotected成员:

声明为私有的类的成员不会被该类的子类继承。**

只有声明为 protected 或 public 的类的成员才能被子类继承,该子类在声明该类的包之外的包中声明。

构造函数、静态初始化器和实例初始化器不是成员,因此不会被继承。

【讨论】:

谢谢!依据是什么? 不,子类不继承私有方法和字段。我手头没有 JLS,但它非常明确地说“私有字段不被继承”等。 这里是,JLS sec 8.2:“声明为私有的类的成员不会被该类的子类继承。” @Andy Turner,谢谢,查找并更新了答案 @AndyTurner 我想找问题,有类似的问题。因为我英文不好,想好好看看,再讨论。非常感谢。click here【参考方案2】:

子类不能访问父类private 属性(字段)和方法。它只能访问publicprotecteddefault 属性和方法。

【讨论】:

谢谢!子类是否继承所有字段和方法?还是一部分? 所有非私有的字段和方法都可以在子类中访问。请注意,我们在这里讨论的是可访问性,而不是方法覆盖。 我知道可访问性,我只想知道私有字段和方法是否被继承 我想找问题,有类似的问题。因为我英文不好,想好好看看,再讨论。非常感谢link

以上是关于IOS 获取父类的所有子类的主要内容,如果未能解决你的问题,请参考以下文章

python获取父类的子类(遍历,递归),并循环执行所有子类的某一方法

第三次发了,反射如何获取子类属性的值

继承一个类,然后返回获取子类中的所有方法并且不包含父类的

java怎么获取某个父类(或接口)的所有子类

sql 查询:无限极分类,获取父类下所有子类

java 类的继承,子类变量的获取