init 的父类 和 子类的初始化

设置可变传参的初始化方法

-(instancetype) initwithHour :(int)h  and Minute :(int)m and second :(int) s;

然后在实现部分

-(instancetype) initwithHour :(int)h  and Minute :(int)m and second :(int) s;

{

self=[super init];

if (self !=nil ) {

Hour=h;

Minute=m;

Second=s;

}

}

然后下方主函数 main 里面进行直接赋值

Time*tm2=[[Time alloc ]initwithHour :13  and Minute :30  and second :0 ];

后台直接显示13:30:00

重写 init  只需要在实现部分直接写 不需要在声明的.h文件重新声明

init是 NSObject 的一个方法

对于继承 于 NSObject 的类

在为内存开辟空间的时候 只是初始化父类的元素 子类的元素需要重新初始化 初始化如下

先初始化父类的部分

self=[ super init ];

//然后初始化自己的部分 先判断self 是否为nil nil 说明 父类初始化失败

-(id) init  //id 是指向任意“对象”的类型  也可以填写instancetype 他只用在初始化里面进行

{

if (self=[super init]) {//super 是初始化父类的部分 如果父类初始化失败 那么self 是nil

{

m_M=10;

m_s=10;

m_H=20;

}

return  self;

}

}

}

}

时间: 2024-11-02 23:22:40

init 的父类 和 子类的初始化的相关文章

3.Java继承中父类与子类的初始化顺序

在 Java 编程语言中,对象的初始化是非常结构化的,这样做是为了保证安全.在前面的模块中,看到了当一个特定对象被创建时发生了什么.由于继承性,对象被完成,而且下述行为按顺序发生: 存储空间被分配并初始化到 0 值 进行显式初始化 调用构造方法 层次中的每个类都会发生最后两个步骤,是从最上层开始. Java 技术安全模式要求在子类执行任何东西之前,描述父类的一个对象的各个方面都必须初始化.因此,Java 编程语言总是在执行子构造方法前调用父类构造方法的版本.有继承的类在运行的时候,一定要记得:初

python——父类与子类的一些说明

Python中类的初始化方法是__init__(),因此父类.子类的初始化方法都是这个,如果子类不实现__init__()这个函数,初始化时调用父类的初始化函数, 如果子类实现了这个函数,则要在这个函数里显式调用一下父类的__init__(),这跟C++,jAVA不一样,他们是自动调用父类构造函数的. #初始化中调用父类初始化方法示例 #B是A的子类 class B(A): def __init__(self): super().__init__() 调用父类其他成员函数的三种方法:1. 直接写

python 继承/父类和子类的关系

# <editor-fold desc="父类和子类关系,继承"># <editor-fold desc="类--讲解--Car"> class Car(): def __init__(self,make,model,year): self.make=make self.model=model self.year =year self.meter=0 def get_car_desc(self): long_name=str(self.yea

父类和子类关系/继承

#!/usr/bin/env python # -*- coding: utf-8 -*- """ @File:继承_子类和父类的关系.py @E-mail:[email protected] @Time:2020/4/4 12:39 上午 @Author:Nobita @Version:1.0 @Desciption:父类和子类关系/继承 """ class Car(): def __init__(self, make, model, year

final,static静态和非静态,初始化和代码块的区别、父类和子类中都有static变量时的初始化顺序、重写equals()、 instanceof强制转换

final:类不能被继承,方法不能被重写,属性值不能被修改(常量): 可以调用: static静态常量----- 不需要创建对象,可以直接调用类里面的属性,方法: 示例如下: 加了static说明它是属于整个类的,每个对象值都一样,如下图所示:size是静态的,所以当在下面t1对象中改变size的值时,整个类中的size值都变了:然后作为普通属性的length,当在t1对象中改变其值,并不会改变原始值: 静态方法不能调用非静态的方法和非静态的属性,也不能打印非静态的方法和非静态的属性:可以在静态

c++ 子类构造函数初始化及父类构造初始化

我们知道,构造方法是用来初始化类对象的.如果在类中没有显式地声明构造函数,那么编译器会自动创建一个默认的构造函数:并且这个默认的构造函数仅仅在没有显式地声明构造函数的情况下才会被创建创建. 构造函数与父类的其它成员(成员变量和成员方法)不同,它不能被子类继承.因此,在创建子类对象时,为了初始化从父类中继承来的成员变量,编译器需要调用其父类的构造函数.如果子类的构造函数没有显示地调用父类的构造函数,则默认调用父类的无参构造函数,至于什么事显式调用,在下面会详细说明!关于子类中构造函数的构造原则,总

谈谈父类和子类的隔离性

以前写代码知道要给类外设置访问接口, 例如下例: 1 class Money 2 { 3 public: 4 Money(int money) : m_curValue(money){} 5 6 void store(int money) { m_curValue += money;} 7 void spent(int money){ m_curValue -= money;} 8 private: 9 int m_curValue; 10 }; 11 12 int main(int argc,

20141214--C#父类,子类

首要: 子类 包含父类的所有的属性方法 所有子类都可以直接转化成父类类型 当父类类型变量里面存的是某个子类的对象的时候,才能转化成那个子类类型. 父类与子类的装换: Ren r = new Ren(); r = (Ren)m;//Man子类转换为Ren父类 Ren m1 = new Ren(); m1 = (Man)r;//转换成父类后再转换为子类时,只能转换成原先的子类, 不能转换成其他子类 需要使用强制装换. private与protected: private 只可在当前类中作为成员变量使

java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题

1 /* 2 对于类中对成员变量的初始化和代码块中的代码全部都挪到了构造函数中, 3 并且是按照java源文件的初始化顺序依次对成员变量进行初始化的,而原构造函数中的代码则移到了构造函数的最后执行 4 */ 5 import static java.lang.System.out; 6 7 public class PersonDemo 8 { 9 public static void main(String[] args) 10 { 11 //*********测试父类与子类之间的循环调用的问