zoukankan      html  css  js  c++  java
  • swift类、继承、接口

    
    
    import Foundation
    
    class Hello{
        
        var _name:String?="swift global"
        
        init(name:String){                    //定义类中有参数的构造方法
            _name=name;
            println("Hello , (name)");
        }
        
        init(){                                //定义类中无参数的构造方法
            println("this is init method");
        }
        
        func sayHello(){                       //定义成员方法
            println("hello (_name)")
        }
        
        class func meClass(){                 //定义类方法
            println("this is class method");
        }
        
    }
    
    
    class Hi:Hello{
        override func sayHello() {          //继承Hello类,并重载 其成员方法
            super.sayHello()                //调用父类的方法
            println("hloo override (_name)");
        }
    }
    
    class HiChild:Hi{}                      //继承Hi类
    
    extension Hi{                           //动态扩展 Hi 类,增加一个成员方法, 继承了Hi 类的子类也可以调用这个方法
        func sayHaha(){
            println("HHHaaa");
        }
    }
    
    var h1 = Hello()                        //实例Hello类,调用无參的init方法 ,输出this is init method
    
    var h2 = Hello(name:"Hello init")     //调用有参的init方法,输出:Hello , Hello init
    
    
    var hi = Hi()       //实例化子类,会调用父类的无參构造方法,输出this is init method
    hi.sayHello() //调用类的方法,输出hello Optional("swift global") 和 hloo override Optional("swift global")

    var h3
    = HiChild() //实例化,调用父类的父类的构造方法,输出this is init method

    h3.sayHaha() //父类扩展了一个方法,则其子类可以调用这个方法,输出 HHHaaa
    h3.sayHello() //调用父类的方法,输出
    hello Optional("swift global") 和 hloo override Optional("swift global")

    Hello.meClass() //调用类方法,输出
    this is class method
    
    

    接口

    protocol People{           //protocal 定义一个接口
        func getName()->String  //接口中申明一个方法,该方法返回一个字符串 
    }
    
    class Man:People {          //实现该接口
        func getName() -> String {   //实现接口的类 必须实现接口中所有的方法
            return "zhangsan"
        }
    }
    
    var m = Man()
    println("Name is (m.getName())")
  • 相关阅读:
    createpipe
    JavaScript中的JSON(非原创一)
    Delphi资源文件的应用(转)
    PowerDesigner15对SQL2005反向工程问题.
    readonly(C# 参考)
    SQL SERVER 2005 数据挖掘与商业智能完全解决方案学习笔记(四)
    什么是Actor?
    ORACLE自增长字段实现(转)
    SQL SERVER 2005 数据挖掘与商业智能完全解决方案学习笔记(二)
    J2EE框架(TomcatStrutsHibernateSpringAjax(dojo))开发步骤:
  • 原文地址:https://www.cnblogs.com/z360519549/p/5770911.html
Copyright © 2011-2022 走看看