您的位置:首页 > 编程语言 > C语言/C++

c++,c#,java,oc多态语法对比

2017-04-12 15:22 351 查看
1.c++

//普通类
class Father
{
    virtual void duotaiFunc(){}
    void normalFunc(){};
}

class Son : Father
{
    virtual void duotaiFunc()
    {
        //do something
    }
}

//抽象类
abstract class AbstractFather
{
    void normalFunc(){};
    virtual void duotaiAbstractFunc() = 0;
}

class Son : AbstractFather
{
    virtual void duotaiAbstractFunc()
    {
        //do something
    }
}

//无接口类

2.c#

//普通类
class Father
{
virtual void duotaiFunc(){}
void normalFunc(){};
}

class Son : Father
{
override void duotaiFunc()
{
//do something
}
}

//抽象类
abstract class AbstractFather
{
void normalFunc(){};
abstract void duotaiAbstractFunc();
}

class Son : AbstractFather
{
override void duotaiAbstractFunc()
{
//do something
}
}

//接口类
interface InterfaceFather
{
void normalFunc();
}

class Son : AbstractFather
{
void duotaiAbstractFunc()
{
//do something
}
}

3.java

//普通类
class Father
{
void duotaiFunc(){}
void normalFunc(){};
}

class Son : Father
{
void duotaiFunc()
{
//do something
}
}

//抽象类
abstract class AbstractFather
{
void normalFunc(){};
void duotaiAbstractFunc();
}

class Son : AbstractFather
{
void duotaiAbstractFunc()
{
//do something
}
}

//接口类
interface InterfaceFather
{
void normalFunc();
}

class Son : AbstractFather
{
void duotaiAbstractFunc()
{
//do something
}
}


4.oc

//普通类
//Father.h
@interface Father : NSObject
-(void)duotaiFunc;
-(void)normalFunc;
@end

//Father.mm
@implementation Father
-(void)duotaiFunc
{
}

-(void)normalFunc
{
}
@end

//Son.h
@interface Son : Father
-(void)duotaiFunc();
@end

//Son.mm
@implementation Son
{
-(void)duotaiFunc()
{
//do something
}
@end

//抽象类
//AbstractFather.h
@interface AbstractFather : NSObject
-(void)normalFunc;
-(void)duotaiAbstractFunc;
@end

//AbstractFather.mm
@implementation AbstractFather
-(void)normalFunc
{
}
@end

//Son.h
@interface Son : AbstractFather
-(void)duotaiFunc();
@end

//Son.mm
@implementation Son
{
-(void)duotaiFunc()
{
//do something
}
@end

//协议(接口类)
//ProtocolFather.h
@protocol ProtocolFather <NSObject>
//默认是必须实现的

//必须实现
@required
- (void)finshTask;

//可选实现
@optional
- (void)wearNeat;
@end

//Son.h
@interface Son : NSObject <ProtocolFather>
- (void)finshTask;
@end

//Son.mm
@implementation Son
{
-(void)finshTask()
{
//do something
}
@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: