9.08 笔记-抽象类与接口与多态
来源:互联网 发布:python 周期性任务 编辑:程序博客网 时间:2024/05/22 01:53
抽象类与接口与多态
一、抽象类(重点)
1. 只要包含抽象方法的类 就是抽象类
2. 抽象类也必须加abstract修饰
3. 抽象类不能直接实例化
4. 抽象类需要被继承 实现所有抽象方法才能使用
5. 如果有任何一个抽象方法没有被实现,那么这个类也必须是抽象类
例程:
//抽象类声明方法,抽象类必须被继承
//抽象方法一般只写声明, 继承的子类写实现方法
abstract class A{
public function eat(){
echo '抽象类里可以写实现方法';
}
//抽象类写方法声明后,子类必须被重写;
//没有实现方法子类必须要重写
abstract public function show();
}
class B extends A{
public function show(){
echo '子类必须重写 show 函数';
}
}
$obj = new B();
$obj->show();
二、抽象方法
1. 没有方法体的方法
2. 必须使用abstract修饰
3. 抽象方法需要被重写
4. 重写了所有抽象方法的类才算一个完整的类 可以被实例化
三、 抽象与抽象方法的作用
就是在企业中制定规范使用!
四、 接口
1. 定义格式
interface 接口名{
[常量]
[抽象方法]
}
2. 特性
a.在接口里面 所有的方法都是抽象方法 不需要额外修饰
b.接口与接口之间是 继承关系
c.类与接口之间 是实现关系(implements)
d.实现 接口可以多实现 中间用逗号隔开
e.类在继承其他类的同时 可以实现接口(多实现)
3. 作用
制定规范使用
4. 与抽象类的差异
如果单纯的用于指定规范 两种都可以
但是如果在制定规范的同时 要共享一些公用方法 只能用抽象类
例程:
//接口定义
interface USB{
//接口只能写声明方法
//注意接口不能写实现方法;
//abstract抽象类就可以有实现方法
public function run();
}
//接口与接口之间是 继承关系
interface PS2 extends USB{
public function move();
}
class A{}
//类与接口之间 是实现关系
//实现 接口可以多实现 中间用逗号隔开
//类在继承其他类的同时 可以实现接口(多实现)
class Mouse extends A implements PS2 {
public function run(){
// 接口中的声明的函数必须被重写
}
public function move(){
//写实现方法
}
}
五、多态
a) 多态: 不同的对象做相同的事情得到不同的结果
class MeiZi{
public function meet($obj){
$obj->ber();
}
}
//制定规范
abstract class Hanzi{
abstract public function ber();
}
//DDS类
class DDS extends Hanzi{
public function ber(){
echo '啪';
}
}
//GFS 类
class GFS extends Hanzi{
public function ber(){
echo '啪啪啪';
}
}
//实例化对象
$girl = new MeiZi;
$xds = new DDS;
$girl->meet($xds);
echo '<hr/>';
$girl->meet( new GFS );
一、抽象类(重点)
1. 只要包含抽象方法的类 就是抽象类
2. 抽象类也必须加abstract修饰
3. 抽象类不能直接实例化
4. 抽象类需要被继承 实现所有抽象方法才能使用
5. 如果有任何一个抽象方法没有被实现,那么这个类也必须是抽象类
例程:
//抽象类声明方法,抽象类必须被继承
//抽象方法一般只写声明, 继承的子类写实现方法
abstract class A{
public function eat(){
echo '抽象类里可以写实现方法';
}
//抽象类写方法声明后,子类必须被重写;
//没有实现方法子类必须要重写
abstract public function show();
}
class B extends A{
public function show(){
echo '子类必须重写 show 函数';
}
}
$obj = new B();
$obj->show();
二、抽象方法
1. 没有方法体的方法
2. 必须使用abstract修饰
3. 抽象方法需要被重写
4. 重写了所有抽象方法的类才算一个完整的类 可以被实例化
三、 抽象与抽象方法的作用
就是在企业中制定规范使用!
四、 接口
1. 定义格式
interface 接口名{
[常量]
[抽象方法]
}
2. 特性
a.在接口里面 所有的方法都是抽象方法 不需要额外修饰
b.接口与接口之间是 继承关系
c.类与接口之间 是实现关系(implements)
d.实现 接口可以多实现 中间用逗号隔开
e.类在继承其他类的同时 可以实现接口(多实现)
3. 作用
制定规范使用
4. 与抽象类的差异
如果单纯的用于指定规范 两种都可以
但是如果在制定规范的同时 要共享一些公用方法 只能用抽象类
例程:
//接口定义
interface USB{
//接口只能写声明方法
//注意接口不能写实现方法;
//abstract抽象类就可以有实现方法
public function run();
}
//接口与接口之间是 继承关系
interface PS2 extends USB{
public function move();
}
class A{}
//类与接口之间 是实现关系
//实现 接口可以多实现 中间用逗号隔开
//类在继承其他类的同时 可以实现接口(多实现)
class Mouse extends A implements PS2 {
public function run(){
// 接口中的声明的函数必须被重写
}
public function move(){
//写实现方法
}
}
五、多态
a) 多态: 不同的对象做相同的事情得到不同的结果
class MeiZi{
public function meet($obj){
$obj->ber();
}
}
//制定规范
abstract class Hanzi{
abstract public function ber();
}
//DDS类
class DDS extends Hanzi{
public function ber(){
echo '啪';
}
}
//GFS 类
class GFS extends Hanzi{
public function ber(){
echo '啪啪啪';
}
}
//实例化对象
$girl = new MeiZi;
$xds = new DDS;
$girl->meet($xds);
echo '<hr/>';
$girl->meet( new GFS );
阅读全文
0 0
- 9.08 笔记-抽象类与接口与多态
- 多态之抽象类与接口
- Java接口与抽象类学习笔记
- java学习笔记----抽象类与接口
- 抽象类与接口学习笔记
- 抽象类与接口学习笔记
- 【JAVASE_学习笔记】抽象类与接口
- Java复习笔记+经验总结-03 继承与多态 接口与抽象类
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- ConcurrentHashMap源码详解
- 进程和线程,vmstat,iostat,dstat,
- GTK显示GIF、GTK动画(图片连续播放)
- emoji表情存入数据库
- [FJOI2007]轮状病毒
- 9.08 笔记-抽象类与接口与多态
- Java设计模式_(行为型)_观察者模式
- 【codevs 2451】互不侵犯
- bitset+暴力——校门外的树(增强版)
- shell
- python里面random的使用
- 3.4 线程id获取
- LeetCode 96. Unique Binary Search Trees Python Solution, Catalan数 结点数为n的不同形态的二叉树一共有多少种
- 沪江日语百度云视频 0-n1百度云网盘视频的swf需要特定的播放器才能播放