静态、抽象类、接口
来源:互联网 发布:安卓手机php编程 编辑:程序博客网 时间:2024/06/06 03:59
1.静态
普通成员:是属于对象的
静态成员:a.是属于类的;
b.定义时加上关键字 static ;
c.关键字 self:在类中代表该类;
d.调用静态成员符号双冒号::
普通方法是可以调用静态成员的; 静态方法不能调用普通成员
例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class
Ren
{
public
$name
;
public
static
$zhongzu
;
//将普通成员变量变为静态成员变量,加上关键字 static
//普通方法
function
Say()
{
echo
Ren::
$zhongzu
.
"你好"
;
//echo self::$zhongzu."你好"; //关键字 self:在类中代表该类: 类名修改,可以用这个关键字
}
}
Ren::
$zhongzu
=
"战斗民族"
;
//调用静态成员使用双冒号::
$r
=
new
Ren();
$r
->Say();
//普通方法可以调用静态方法
输出结果就是:战斗民族你好
2.抽象类
抽象类a.它不能被实例化, b.它作为父类使用, c.关键字 abstract
例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
abstract
class
Dongwu
//使用关键字 abstract 可以成为抽象类
{
public
$name
;
public
$age
;
function
Run()
{
echo
"跑"
;
}
}
class
Dog
extends
Dongwu
//继承父类
{
}
$d
=
new
Dog();
$d
->Run();
实例化子类继承父类就可以输出正确
注意:强行实例化抽象类,会出现错误
抽象类的扩展功能很强,可以不动源代码的基础上扩展出其他的类
例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
abstract
class
YunSuan
//抽象类的关键字 abstract
{
public
$a
;
public
$b
;
function
Suan()
{
}
}
//Jia继承YunSuan并且修改Suan方法
class
Jia
extends
YunSuan
{
function
Suan()
{
return
$this
->a+
$this
->b;
}
}
//Cheng继承YunSuan并且修改Suan方法
class
Cheng
extends
YunSuan
{
function
Suan()
{
return
$this
->a*
$this
->b;
}
}
$J
=
new
Jia();
$J
->a=2;
$J
->b=10;
echo
$J
->Suan();
3.接口
接口:a.极度抽象的类
b.定义方式 :interface
c.接口中的方法是控制子类必须实现某些功能(接口中出现的方法,子类必须实现)
d.实现接口 关键字:implements
例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
interface
IUSB
//I开头,I就是定义方式的开头
{
function
Read();
//成员方法:没有函数体,只声明函数名
function
Write();
}
class
ShuBiao
implements
IUSB
//实现接口 关键字:implements
{
function
Read()
{
echo
"鼠标插上"
;
}
function
Write()
{
echo
"chuanshu"
;
}
}
$s
=
new
ShuBiao();
$s
->Read();
输出结果就是:鼠标插上
注意:如果子类中没有把父类的方法全部实现,那么输出时会报错;如果子类把父类的方法全部实现了,那么就会输出正确的调用方法答案
0 0
- 静态、抽象类、接口
- 静态类,抽象类,接口
- 抽象 接口 静态
- php 静态、抽象、接口讲解
- JACK_C#_抽象,静态,接口
- 【钻牛角尖】静态接口或静态抽象方法
- 委托 事件 密封类 静态类 抽象类 接口
- 静态变量,函数以及抽象类,接口 知识随记
- 黑马程序员--静态,接口,内部类,抽象类
- 静态类和静态方法、接口和抽象类、内部类、单子设计模式
- 面试题:接口是否可继承接口? 抽象类是否可实现接口? 抽象类是否可继承具体类? 抽象类中是否可以有静态的main方法?
- 接口、抽象类、抽象方法
- 抽象接口和抽象类
- 静态内部抽象类
- 静态内部抽象类
- 类 抽象类 接口
- 抽象类接口类
- 类、抽象类、接口
- 350. Intersection of Two Arrays II
- C#访问远程主机资源的方法,多种方式
- 题目1200:最大的两个数
- Unity3D引擎之渲染技术系列四
- 关于阻止冒泡的兼容性写法以及判断目标点的兼容性写法
- 静态、抽象类、接口
- 【HDU3401】Trade-单调队列优化DP
- 深度剖析ConcurrentHashMap
- 括号匹配算法的一种正确实现(java)
- LeetCode-Easy部分中标签为Math的所有题目
- PAT 乙级1003
- 面向对象的3大特性
- 三大链表之klist
- 算法提高 线段和点