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())")
swift类、继承、接口的更多相关文章
- Kotlin学习快速入门(3)——类 继承 接口
类 参考链接 类定义格式 使用class关键字定义,格式如下: class T{ //属性 //构造函数 //函数 //内部类 } Java Bean类 java bean类 //java bean类 ...
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
类型判断符号: C#:object a; if(a is int) { } 用 is 符号判断 Java:object a; if(a instanceof Integer) { } 用 inst ...
- 接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)?
接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)? 1. 接口可以继承接口. 2. 抽像类可以实现(implements)接 ...
- java 继承类与接口问题
java 先extends 继承类,再implements 继承接口 public class DataBase extends ClassBase implements Ijiekou { }// ...
- [Java] 类和接口的初始化步骤 - 继承方面
类和接口在初始化化时,处理继承层级的方法不一样. 类继承的初始化:通过引用 static 字段,触发某个类的初始化,则声明该字段的类,以及该类的父类被初始化. 接口继承的初始化:通过引用 static ...
- Swift—类的继承-备
Swift中的继承只能发生在类上,不能发生在枚举和结构体上.一个类可以继承另一个类的方法.属性.下标等特征,当一个类继承其他类时,继承类叫子类,被继承类叫父类(或超类).子类继承父类后,可以重写父类的 ...
- day27 多态 多继承 接口类 抽象类
简单来说:多态就是指一个相同的方法名在不同的对象调用的时候实现一样或者不一样的方法实例1: 动物类有个方法 "嚎叫" 狗类也有个方法 "嚎叫" 猫类继承了动物类 ...
- PHP类继承、接口继承关系概述
PHP类继承: PHP类不支持多继承,也就是子类只能继承一个父类,但是支持多层次继承,比如: class frist{ public function __construct(){ echo &quo ...
- python的类的继承-接口继承-归一化设计
1.先在子类本身找,如果子类没有,会去父类找 class Dad: '这个是爸爸类' money=10#Dad类的数据属性 def __init__(self,name): print("爸 ...
- 【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
接口可以继承接口.抽象类可以实现(implements)接口,抽象类可以继承具体类.抽象类中可以有静态的main方法. 问: 抽象类是否可继承实体类 (concrete class) 答: 抽象类是 ...
随机推荐
- 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构
一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案 ...
- Jenkins常用插件说明(持续更新)
本文主要记录在学习以及使用Jenkins过程中常用的对我们有帮助的插件,同时本文将会持续进行更新.如果大家发现有其他野很好用的插件,也欢迎参照下面的格式,在评论中进行回复反馈. 一.通用插件 1.Em ...
- C语言 · 最小公倍数
问题描述 编写一函数lcm,求两个正整数的最小公倍数. 样例输入 一个满足题目要求的输入范例.例:3 5 样例输出 与上面的样例输入对应的输出.例: 数据规模和约定 输入数据中每一个数的范围. 例:两 ...
- JavaScript利用replace更改所有符合条件字符
利用replace替换字符串时,在正常使用情况下默认只能更改匹配到的第一个字符 var a=new String("fffffddd"); console.log(a.replac ...
- 预处理(防止sql注入的一种方式)
<!--- 预处理(预编译) ---><?php/* 防止 sql 注入的两种方式: 1. 人为提高代码的逻辑性,使其变得更严谨,滴水不漏. 比如说 增加判断条件,增加输入过滤等,但 ...
- Latch1:理解 PageIOLatch和PageLatch
Latch主要分为三种,Buffer Latch,I/O Latch, non-buf latch. 1,PageLatch 在访问数据库的数据页(Data Page或Index Page)时,如果相 ...
- 移动端web开发
meta基础知识点: 页面自动调整到设备宽度,并禁止用户缩放. <meta name="viewport" content="width=device-width, ...
- 深入理解滚动scroll
前面的话 前面两篇博文分别介绍过偏移大小.客户区大小.本文介绍元素尺寸中内容最多的一部分——滚动scroll 滚动宽高 scrollHeight scrollHeight表示元素的总高度,包括由于溢出 ...
- Eclipse开发工具组合键介绍
1. 编辑类 Ctrl + Q 跳到最后一次的编辑处 Ctrl + 1 快速修复提示 Alt + ↓ ...
- MySQL学习笔记之MySQL安装详解
前言 虽然现在NoSQL发展迅速,但MySQL还是非常受欢迎的,成千上万的公司依旧采用LAMP OR LNMP的搭配来进行开发,因此MYSQL的学习还是有一定的必要. 安装环境:Windows 7,需 ...