zoukankan      html  css  js  c++  java
  • Objective-C Polymorphism

    #import <Foundation/Foundation.h>
    
    @interface Shape : NSObject 
    {
      CGFloat area;
    }
    -(void)printArea;
    -(void)calculateArea;
    @end
    
    @implementation Shape
    
    -(void)printArea {
     NSLog(@"The area is %f",area);
    }
    
    -(void)calculateArea {
    }
    
    @end
    
    
    @interface Square : Shape
    {
      CGFloat length;
    }
    
    -(id)initWithSide : (CGFloat)side;
    -(void)calculateArea;
    
    @end
    
    
    @implementation Square 
    
    -(id)initWithSide : (CGFloat)side {
     length = side;
     return self;
    }
    
    -(void)calculateArea {
     area = length * length;
    }
    
    -(void)printArea {
     NSLog(@"The area of square is %f", area);
    }
    
    @end
    
    
    @interface Rectangle : Shape 
    {
     CGFloat length;
     CGFloat breadth;
    }
    -(id)initWithLength: (CGFloat)rLen andBreadth:(CGFloat)rBreadth;
    
    @end
    
    
    @implementation Rectangle
    
    -(id)initWithLength: (CGFloat)rLen andBreadth:(CGFloat)rBreadth {
     length = rLen;
     breadth = rBreadth;
     return self;
    }
    
    -(void)calculateArea {
     area = length * breadth;
    }
    
    -(void)printArea {
     NSLog(@"The area of Rectangle is %f", area);
    }
    
    @end
    
    
    int main(int ar, const char * argv[])
    {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
      Shape *square = [[Square alloc]initWithSide:4.2];
      [square calculateArea];
      [square printArea];
      Shape *rect = [[Rectangle alloc]initWithLength:7.88 andBreadth:6.35];
      [rect calculateArea];
      [rect printArea];
      
      [pool drain];
      return 0;
      
    }
  • 相关阅读:
    设计模式
    软件的架构与设计模式之经典架构模式简介
    Rose与PowerDesigner:两款建模工具的对比
    C#中Socket多线程编程实例 [转载]
    C#串口控制
    .NET反射、委托技术与设计模式
    求多个数的质因子
    求单个数的欧拉函数
    基本欧拉函数
    hdu 2157(矩阵的快速幂)
  • 原文地址:https://www.cnblogs.com/silva/p/5227815.html
Copyright © 2011-2022 走看看