子类B重写了父类A的方法,怎么还是运行A里的方法

B类继承自A类,A类要扫描二维码,B类要上传图片,同时要调用imagePickerController这个方法。

在A类里:

- (void) imagePickerController: (UIImagePickerController*) reader
 didFinishPickingMediaWithInfo: (NSDictionary*) info
{
        //扫描二维码也需要打开相机
}

在B类里:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    if ([self.class isSubclassOfClass:[A class]]) {
        //打开相册上传图片

} else {
       //扫描二维码也需要打开相机 执行父类原来的方法
        [super imagePickerController:picker didFinishPickingMediaWithInfo:info];
    }
    
}

时间: 2024-08-07 02:42:15

子类B重写了父类A的方法,怎么还是运行A里的方法的相关文章

远程调用服务里的方法service,进程间通信adil的学习

1当一个进程需要调用另外一个进程的方法时候,进程可以通过aidl文件以接口的方式将方法抛出.比如android没有对外提供挂电话的方法,若用户想要调用这个方法就必须与电话管理这个应用程序通信,调用挂电话的方法. 2.下面我就举例一个demo调用远程服务里的方法.为了验证service能否单独启动,这个demo启动了2个远程服务,一个有activity的一个只有service的.并且他们抛出的接口名字相同,正好学习一下同名的引用,发现一个java文件里只能import  1个同同名的类,若想调用另

让子类必须重写父类的方法

//在编写子类的时候要重载父类的方法,如果子类不重写方法,则跑出异常让程序崩溃 - (void)superClassMethod { [NSException raise:NSInternalInconsistencyException format:@"It's an exception", NSStringFromSelector(_cmd)]; }

继承(父类为虚方法以及子类的重写)

定义父类为虚方法时需要关键字  virtual 子类重写需要关键字  override 示例代码: //父类   public class People    {        //虚方法        //VR Virtual Reality  虚拟现实        //AR Augmented Reality 增强现实        public virtual void SayHello()        {            Console.WriteLine("父类打招呼的方法&

继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类。 (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 (3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承。 (4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。 分析以上程

继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类. (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法.(3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承.(4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承. 分析以上程序示例,主要疑惑点是“子类继承父类的成员变量,父类对象是否会实例化?私有成员变量是否会被继承?被继承的成员变量

python--继承--方法的重写---和父类的扩展

1.方法的重写 父类的方法不能满足子类的需要,可以对方法重写 具体的实现方式,就相当于在子类中定义了一个和父类同名的方法并实现 重写之后只会对子类的方法调用,而不会调用父类封装的方法 2.对父类方法进行扩展 如果在开发中,子类的方法实现包含父类的方法实现 父类原本封装的方法实现是,子类方法的一部分 就可以使用扩展的方式 1.在子类中重写父类的方法 2.在需要的位置使用super().父类方法 来调用父类方法的执行. 3.代码其他的位置针对子类的需求,编写子类特有的代码实现. 原文地址:https

转:Java中子类是否可以继承父类的static变量和方法而呈现多态特性

原文地址:Java中子类是否可以继承父类的static变量和方法而呈现多态特性 静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法,关于static方法,声明为static的方法有以下几条限制: 它们仅能调用其他的static 方法. 它们只能访问static数据. 它们不能以任何方式引用this 或super. 无论是static修饰的变量,还是static修饰的方法,我们都知道他们是属于类本身的,不是属于某一个对象的,当声明一个对象时,并不产生sta

子类继承父类时,子类与父类有同名变量,当使用子类对象调用父类方法使用同名变量,这个变量是子类的,还是父类的? (改)

1 public class Test4 { 2 public static void main(String[] args){ 3 Son son = new Son(); 4 son.minusOne(); 5 System.out.println(son.testValue); 6 System.out.println(son.getSuperTestValue()); 7 son.plusOne(); 8 System.out.println(son.testValue); 9 Syst

【C++】子类在重写虚函数时,会覆盖父类的函数

//子类在重写虚函数时,会覆盖父类的函数 #include <iostream> using namespace std; class B { public: B() { cout<<"Create B!"<<endl; } public: virtual void fun() { cout<<"B::fun()"<<endl; } virtual void show() { cout<<&qu

再谈包访问权限 子类为何不能使用父类protected方法

可见范围 权限的含义应该理解为控制范围,要把它理解成一个限制范围的空间,更为准确的说叫做可见范围 访问控制的等级,从最大权限到最小权限依次为:public.protected.包访问权限(没有关键词).和private public 所有地方都可以访问,没有任何疑问 private 只有自己本类可以访问,没有任何疑问 默认也就是包访问权限,顾名思义,包访问权限,也就是必须同一个包中才可以,即使是子类不在同一个包中也不行的 protected是默认包访问权限的扩展,默认是出了包的范围,就不行了,但