swift的面向对象(主要包括如何创建类,创建和使用类方法,类的继承,类的扩展,如何使用接口及协议 命名空间(在同一个类,在不同的类))
//
// main.swift
// SwiftObjectFromJike
//
// Created by ytdxxt on 14-12-11.
// Copyright (c) 2014年 xutao. All rights reserved.
//
import Foundation
//1、创建类的方法
class sayHi {
//构造方法
var _name : String
init(name:String){
_name=name
}
func printIt(){
println("Hello Swift \(_name)")
}
//2.类方法
class func sayHello(){
println("Hi Swift")
}
}
var h=sayHi(name: " xutao")
h.printIt()
sayHi.sayHello()
//3.继承
class inherit: sayHi {
//重写方法
override func printIt() {
//执行父类的方法
super.printIt()
println("overWrite \(_name)")
}
}
var hi=inherit(name: "big xu")
hi.printIt()
//4.类的扩展
extension sayHi{
func printSecond(){
println("extension")
}
}
var hi2=sayHi(name: "Swift")
hi2.printSecond()
hi2.printIt()
//5.如何使用接口(协议)
protocol people{
func getName()->String
}
class Male:people{
func getName() -> String {
return "protocol"
}
}
var pro = Male()
println("my class is \(pro.getName())")
//6.命名空间
class first{
class second {
class third {
func nameH(){
println("nameSpace")
}
}
}
}
var nameSpace=first.second.third()
nameSpace.nameH()
class firstSpace {
class secondSpace {
}
}
//通过扩展的方式添加类在同一个命名空间下,添加更多的类
extension firstSpace.secondSpace{
class sayNameSpace {
func nameSpace(){
println("classFirst")
}
}
}
extension firstSpace.secondSpace{
class sayNameSpaceSec {
func nameSpaceSec(){
println("classSecond")
}
}
}
var nameSpaceExtension=firstSpace.secondSpace.sayNameSpaceSec()
nameSpaceExtension.nameSpaceSec()
//通过建多个类的方式
myswift类
class hello {
class jkxy {
}
}
Hi类
extension hello.jkxy{
class hi {
func sayHi(){
println("hi jikexueyuan")
}
}
}
Hello类
extension hello.jkxy{
class hello {
func sayHello(){
println("Hello jkxy")
}
}
}
var hh=hello.jkxy.hello()
hh.sayHello()
var hhh=hello.jkxy.hi()
hhh.sayHi()