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 节)
关于继承的重要部分,关于private
、public
和protected
成员:
声明为私有的类的成员不会被该类的子类继承。**
只有声明为 protected 或 public 的类的成员才能被子类继承,该子类在声明该类的包之外的包中声明。
构造函数、静态初始化器和实例初始化器不是成员,因此不会被继承。
【讨论】:
谢谢!依据是什么? 不,子类不继承私有方法和字段。我手头没有 JLS,但它非常明确地说“私有字段不被继承”等。 这里是,JLS sec 8.2:“声明为私有的类的成员不会被该类的子类继承。” @Andy Turner,谢谢,查找并更新了答案 @AndyTurner 我想找问题,有类似的问题。因为我英文不好,想好好看看,再讨论。非常感谢。click here【参考方案2】:子类不能访问父类private
属性(字段)和方法。它只能访问public
、protected
和default
属性和方法。
【讨论】:
谢谢!子类是否继承所有字段和方法?还是一部分? 所有非私有的字段和方法都可以在子类中访问。请注意,我们在这里讨论的是可访问性,而不是方法覆盖。 我知道可访问性,我只想知道私有字段和方法是否被继承 我想找问题,有类似的问题。因为我英文不好,想好好看看,再讨论。非常感谢link以上是关于IOS 获取父类的所有子类的主要内容,如果未能解决你的问题,请参考以下文章