サブクラスを想定に入れたinstancetypeを返すクラスメソッドをSwiftで書き換える方法は？

[code]

    @interface AClass : NSObject
    + (instancetype)hoge;
    @end
    
    @interface BClass : AClass
    @end
    
    @implementation AClass
    + (instancetype)hoge {
        return [self new];
    }
    @end
    
    @implementation BClass
    @end
    
    
    id objA = [A hoge];    // AClass's instance
    id objB = [B hoge];    // BClass's instance
    
[/code]

このクラスをSwiftで書き換えることは出来ますか？



[code]

    class AClass : NSObject {
        required override init() {}
    
        class func hoge() -> Self {
            return self()
        }
    }
    
    class BClass : AClass {
    }
    
    var objA = AClass.hoge();
    var objB = BClass.hoge();
    
[/code]



[code]

    class AClass : NSObject {
        required override init() {}
    
        class func hoge() -> Self {
            return self()
        }
    }
    
    class BClass : AClass {
    }
    
    var objA = AClass.hoge();
    var objB = BClass.hoge();
    
[/code]

