Objective-C - super的作用

super的作用


#import <Foundation/Foundation.h>

/*
 super的作用
 1.直接调用父类中的某个方法
 2.super处在对象方法中,那么就会调用父类的对象方法
   super处在类方法中,那么就会调用父类的类方法

 3.使用场合:子类重写父类的方法时想保留父类的一些行为
 */

// 僵尸
@interface Zoombie : NSObject
- (void)walk;

+ (void)test;
- (void)test;

@end

@implementation Zoombie
- (void)walk
{
    NSLog(@"往前挪两步******");
}

+ (void)test
{
    NSLog(@"Zoombie+test");
}

- (void)test
{
    NSLog(@"Zoombie-test");
}
@end

// 跳跃僵尸
@interface JumpZoombie : Zoombie
+ (void)haha;
- (void)haha2;
@end

@implementation JumpZoombie

+ (void)haha
{
    [super test];
}

- (void)haha2
{
    [super test];
}

- (void)walk
{
    // 跳两下
    NSLog(@"跳两下");

    // 走两下(直接调用父类的walk方法)
    [super walk];
    //NSLog(@"往前挪两步----");

}
@end

int main()
{
    //[JumpZoombie haha];
    JumpZoombie *jz = [JumpZoombie new];

    [jz haha2];

    return 0;
}
时间: 2024-10-29 19:51:23

Objective-C - super的作用的相关文章

java中super的作用

super()的作用 super可以用来访问超类的构造方法和被子类所隐藏的方法,如果子类中有方法与超类中的方法名称和参数相同,则超类中的方法就被隐藏起来,也就是说在子类中重载了父类中的方法. 引用父类中所隐藏的语法格式如下: super(参数列表)或super.方法名(参数列表) 下面通过代码展示一下super的用法: package cn.demo; public class Demo1 { public static void main(String[] args) { SubClass_A

java中 this() 和super()的作用及用法

原文地址:http://www.cnblogs.com/hasse/p/5023392.html 一.This Java关键字this只能用于方法体中.this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this. 1.this三大作用: this调用属性.调用方法.利用this表示当前对象. 2.this的用法: (1).普通的直接引用 这种就不用讲了,this相当于是指向当前对象本身. (

详解es6 class语法糖中constructor方法和super的作用

大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5.由于类似的库层出不穷,最终还是在ECMAScript 6中引入了类的特性.本文将详细介绍ES6中的类,ES6 的 class 属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的. function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toSt

java 构造方法中super()的作用?

手贱百度了一下 :java里面自定义类的有参构造方法为什么不用super() 举个例子: class Father { Father(){print ('father');}; } class Son { Son(){print ('son')}; } 如果只是这样,那么构造Son之前会在后台调用一下super()函数,调用过程你看不到,但是确实执行了,结果是先father后son但是这种时候你显示的写个super就没有意义了,那么他在什么时候用呢,再举个例子 给你举个例子 class Fath

Java学习笔记之this与super的作用

? 调用类中变量的写法实际上应该是:对象名.变量名 1.this代表调用该成员的对象,通常对象名被省略,即省略了this.但是在有同名变量参与时不可省略.如下面的情形: public void setNum(String num){ this.num = num;} ? 2.当在同一个类中的一个构造函数中调用另一个构造函数时,就可以使用this来直接调用.但是在使用时,含有this的这句话必须放在代码块的第一行.如下面的情形: public Time(long totaltime)//以特定时间

super()的作用

super能够用来訪问父类的构造方法和被子类所隐藏的方法.假设子类中有方法与父类中的方法名称和參数同样,则父类中的方法就被隐藏起来,也就是说在子类中重载了父类中的方法. 引用父类中所隐藏的语法格式例如以下: super(參数列表)或super.方法名(參数列表) 以下通过代码展示一下super的使用方法: package cn.demo; public class Demo1 { public static void main(String[] args) { SubClass_A sc=new

Java基础(basis)-----关键字this和super的作用

1.关键字this 可以用来修饰属性.方法.构造器:this理解为当前对象或当前正在创建的对象 局部变量与成员变量同名,成员变量被屏蔽,用"this.成员变量"的方式访问成员变量 可以在构造器中通过“this(形参)”的方式显示的调用本类中其它重载的指定的构造器,在构造器内部必须声明在首行 package com.keyword; /** * this关键字 * * @author yyx 2019年2月15日 */ public class ThisDemo { private St

解读es6 class 中 constructor 方法 和 super 的作用

ES6 的 class 属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的.类和模块的内部,默认就是严格模式,所以不需要使用use strict指定运行模式. //定义类class Point { constructor(x, y) { this.x = x; this.y = y; } toString() { return '(' + this.x + ', ' + this.y + ')'; }}等同于 function Point(x, y) {

super作用

super()的作用: super可以用来访问超类的构造方法和被子类所隐藏的方法,如果子类中有方法与超类中的方法名称和参数相同,则超类中的方法就被隐藏起来,也就是说在子类中重载了父类中的方法. 引用父类中所隐藏的语法格式如下: super(参数列表)或super.方法名(参数列表) 下面通过代码展示一下super的用法: package cn.demo; public class Demo1 { public static void main(String[] args) { SubClass_