zoukankan      html  css  js  c++  java
  • OC 继承

    //
    //  woman.h
    
    #import <Foundation/Foundation.h>
    
    @interface woman : NSObject{
    
        NSString *_name;
        NSString *_hobby;
        int _tui;
        int _age;
    
    
    }
    //方法
    -(void)eat;
    -(void)shopping;
    -(void)play;
    
    //get (取值)  set(赋值)
    //set方法写法
    -(void)setName:(NSString *)name;
    -(NSString *)name;
    -(void)setHobby:(NSString *)hobby;
    -(NSString *)hobby;
    -(void)setTui:(int)tui;
    -(int)tui;
    -(void)setAge:(int)age;
    -(int)age;
    
    
    -(instancetype)initWithName:(NSString *)name
                          hobby:(NSString *)hobby
                            tui:(int)tui
                            age:(int)age;
    
    
    
    //便利构造器
    +(woman *)womanWithName:(NSString *)name
                      hobby:(NSString *)hobby
                        tui:(int)tui
                        age:(int)age;
    
    
    
    
    
    @end
       
    //
    //  woman.m
    
    #import "woman.h"
    
    @implementation woman
    
    -(instancetype)initWithName:(NSString *)name
                          hobby:(NSString *)hobby
                            tui:(int)tui
                            age:(int)age{
    
        self=[super init];
        if (self) {
            _name=name;
            _hobby=hobby;
            _tui=tui;
            _age=age;
        }
        return self;
    }
    
    
    
    //便利构造器
    +(woman *)womanWithName:(NSString *)name
                      hobby:(NSString *)hobby
                        tui:(int)tui
                        age:(int)age{
    
        woman *w=[[woman alloc]initWithName:name hobby:hobby tui:tui age:age];
        
        
        return w;
    }
    
    
    
    
    
    
    -(void)eat{
        NSLog(@"吃好吃的~~");
    
    }
    -(void)shopping{
        NSLog(@"买好的~~");
    
    }
    -(void)play{
    
        NSLog(@"玩好玩的");
    }
    
    
    -(void)setName:(NSString *)name{
    
        _name=name;
    }
    -(NSString *)name{
        return _name;
    }
    -(void)setHobby:(NSString *)hobby{
        
        _hobby=hobby;
    }
    -(NSString *)hobby{
    
        return _hobby;
    
    
    }
    -(void)setTui:(int)tui{
    
        _tui=tui;
    }
    -(int)tui{
        return _tui;
    
    }
    -(void)setAge:(int)age{
    
        _age=age;
    }
    -(int)age{
    
        return _age;
    
    }
    
    
    @end
                        

    /*
     继承:
     继承优势:就是省代码,提高开发效率,增强程序的可扩展性和可修改性
     1,继承的上层(父类)superclass  继承的下层(子类)subclass
     
     2.继承具有单向性,如果a作为b的父类,则a就不能在成为b的子类
     
     3.继承具有传递性 (如果c继承b  b继承于a  则 c就具有a 和b 的所有内容)
     
     4.子类继承 父类的全部实例变量以及方法
     
     5.子类从父类继承过来的内容就是子类自己的,只不过这个内容来源于父类自己
     
     原则:当多个类中出现部分相同的特征和行为,可以将相同部分写成一个父类,其他类继承.
     
     */
    [super eat];//它是一个编译器指令,获取父类里面对test方法的实现
        
        //[self eat];//调用子类自己的方法,(就是重写之后父类的方法),如果子类没有那么就直接找到父类的方法
        
        
        //self->它是'自己",一般情况下载+号方法中代表的是 类,在-号中代表的是对象
        


  • 相关阅读:
    第二部分:并发工具类17->ReadWriteLock:如何快速实现一个完备的缓存
    第二部分:并发工具类16->Semaphore:如何快速实现一个限流器
    第二部分:并发工具类15->Lock和condition(下)
    一款类似B站的开源弹幕播放器,太酷了
    2021年基础知识点复习
    Autofac.Core.DependencyResolutionException: An exception was thrown while activating Castle.Proxies.MiniProgramAppServiceProxy.
    一张图解析FastAdmin中的弹出窗口的功能
    vue 关闭代码严格模式,轻松运行
    vue项目严格模式下的常见错误
    mysql下载安装包及安装步骤
  • 原文地址:https://www.cnblogs.com/huyibo/p/5475316.html
Copyright © 2011-2022 走看看