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){
向下转型
调用猫特有的方法
  }
}

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

php网站源码教程大全
php网站源码教程大全

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

4

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

7

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

42

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

4

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

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

精品课程

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

共57课时 | 7.7万人学习

Vue 教程
Vue 教程

共42课时 | 5.7万人学习

Excel 教程
Excel 教程

共162课时 | 10.1万人学习

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

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