0

0

面向对象(接口 ,多态)

巴扎黑

巴扎黑

发布时间:2017-06-26 11:09:54

|

1314人浏览过

|

来源于php中文网

原创

接口

(1)当抽象类中的方法都是抽象的时候,java就提供了一种新的表现形式:接口 ,接口是功能的集合 接口不能创建对象
(2)格式
  父接口:public interface Tnter{


}
子类:public class interImp implements Itner{

}

接口的使用
1.接口不能创建对象
2.定义实现类来实现接口
实现的关键字  implements
3.重写抽象方法  
4.创建实现类对象  调用方法


接口的特点
1.不需要被abstract 修饰
2.类实现接口,可以单实现 还可以多实现
3.接口可以继承接口,可以单继承也可以多继承
4.接口与父类的功能可以重复,均代表要具备某种功能

接口的成员特点
成员变量  静态常量  
固定修饰符  public static final
无论写不写  挑着写 都是这个修饰符  不变

成员方法
固定修饰符   public abstract
无论写不写  挑着写 都是这个修饰符  不变

抽象类和接口的区别
1.成员的区别
抽象类:
成员变量: 可以是变量,也可以是常量
构造方法:有构造方法,用于子类实例化使用
成员方法:可以是抽象的,也可以是非抽象的
接口:
成员变量:只能是常量
默认修饰符:public static final

成员方法:只能是抽象的
默认修饰符:public abstract

推荐:默认修饰符请永远自己手动给出
2.类和接口的关系区别
类与类:
继承关系,只能单继承,可以多层继承

类与接口:
实现关系,可以单实现,也可以多实现
类还可以继承一个类的同时实现多个接口

接口与接口:
继承关系,可以单继承,也可以多继承
3.体现的理念不同

魔众积分商城系统
魔众积分商城系统

魔众积分商城系统提供积分商城,会员积分系统,积分兑换商城,积分系统,积分运营,营销活动工具,积分游戏。API接口对接会员积分系统,简单配置页面即可上线,助力企业会员运营管理。 魔众积分商城系统,商品兑换更加容易 魔众积分商城系统支持多种操作系统和软件环境,如Linux/Unix、Windows操作系统以及Apache/Nginx、PHP5.5.9+/PHP7.0、MySQL5.

下载

抽象类里面定义的都是一个继承体系中的共性内容
接口是功能的集合是一个体系额外的功能,是暴露出来的规则


一切使用父类/接口引用的地方 都可以传入其子类/实现类对象

 

多态
同一个对象,在不同时刻体现出来的不同的状态
举例:水(水,冰,水蒸气)
猫(猫,动物)
前提:
A: 有继承或者实现关系
B: 有方法的重写
C: 有父类的引用指向子类对象
多态中的成员使用特点
Fu fz=new Zi();
多态时 所有表现形式都是父类的表现形式
只有调用方法时,运行的是子类重写的方法
1.成员变量
编译看左边  运行看左边
2.成员方法
编译看左边  运行看右边

 1         class Fu{ 2             int num=4; 3             void show(){ 4                 system.out.println("showFu") 5             } 6  7         } 8         class Zi extends Fu{ 9 10             int num=5;11             void show(){12                 system.out.println("showZi");13             }14         }15         class T{16             public static void main(String args[]){17                 Fu f=new Zi();18                 system.out.println(f.num);19                 f.show();20             }21         }

 

多态中的转型
1.向上转型
把子类对象赋值给父类(接口)的引用 自动类型提升
int a=0; double b=a;
Fu fz=new Zi();
2.向下转型
把父类(接口)的引用强制转换成子类对象
double b=10.0;
int a=(int)b;

Fu fz=new Zi();
Zi zi=(Zi)fz;
注意:Fu fu=new Fu()不能向下转型 会报ClassCastException类型转换异常

多态的好处及弊端
1.好处
提高了程序可维护性和可扩展性
2.弊端
不能适用子类特用内容
要想使用,要么向下转型,要么重新创建子类对象
多态的三种形式
1.具体的类多态 父类 变量名 =new 子类()
2.抽象类多态  父抽象类 变量名=new 子类()
3.接口多态   接口  变量名 =new 实现类()

instanceof关键字
格式:对象名 instanceof类名
返回值:true false
作用:判断指定的对象 是否为给定类创建的对象

Animal a1=new Cat();
Animal a2=new Dog();
method(a1)
public static void method(Animal a){

if(a instanceof Cat){
向下转型
调用猫特有的方法
  }
}

相关专题

更多
C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

29

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.22

PHP特殊符号教程合集
PHP特殊符号教程合集

本专题整合了PHP特殊符号相关处理方法,阅读专题下面的文章了解更多详细内容。

11

2026.01.22

PHP探针相关教程合集
PHP探针相关教程合集

本专题整合了PHP探针相关教程,阅读专题下面的文章了解更多详细内容。

8

2026.01.22

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

55

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 9.2万人学习

Vue 教程
Vue 教程

共42课时 | 7万人学习

Excel 教程
Excel 教程

共162课时 | 13.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号