接口
时间:2019-08-18
本文章向大家介绍接口,主要包括接口使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.接口
1.什么是接口:接口是一种标准或者说是一种规范,和类是一个级别
语法: 【权限修饰符】 interface 接口名{}
2.访问权限修饰符 :pubic: 公共所有的地方都可以访问
默认:package 本包内
3.基于jdk不同:
jdk1.7: 1.静态常量 :接口.常量 调用
//静态常量(final) final String name="张三"; int age=20;//[默认加上public static final] public int age1=22;//默认加上 static final final int age2=23;//默认加上public static
2.抽象方法:默认抽象方法[public abstract] 返回值 方法名();
jdk1.8: 1.默认的方法 :
①default 返回值 方法名称(参数){方法体}//作用:实现接口的类对该方法进行重写,如果实现改接口的没有重写该方法,可以由子类对象对该方法进行调用;一定要加default,这个是语法规则
②接口中的默认方法的访问权限修饰符:不可以是private/protected修饰方法
③重写接口中默认方法的权限修饰符只能是public,因为接口中方法的默认权限修饰符就是public;
2.静态方法:
①使用接口名.方法名调用静态方法(因为静态方法属于接口,不属于对象)
②可以被接口的实现类重写,但是该静态方法不可以使用父类引用调用
③接口中定义的static的方法,在实现类中不能写static,才会实现重写接口中的静态方法;这和普通父类和子类的静态方法不一样,普通类必须要同时有或者同时不写
jdk1.9: 1.添加私有(private)的方法
4.接口注意要点
①接口不能被实例化,但是可以通过匿名对象的方式。
②接口被实现的关键字 implement
③一个类只能有一个直接父类,但是该类可以实现多个接口,每个接口名使用逗号隔开;
④接口有传递性,接口之间使用extends实现传递性(继承) interface 接口1 extends 接口2,接口3,接口4....
5.关于static与final:
static:静态成员,可以修饰方法 属性 内部类 属于类的成员
fianl:最终的 类(不能被继承) 属性(常量与static) 常量(不能改变)
6.接口实现多态
1.一般方式
2.匿名类的对象
3.匿名类的匿名对象
1 public class TestProduct { 2 3 public static void main(String[] args) { 4 //一般方式 5 Product pro=new Computer1(); 6 System.out.println(pro.getName()); 7 pro.getPrice(); 8 //匿名类的对象 9 Product pro1=new Product() { 10 11 @Override 12 public void getPrice() { 13 System.out.println("价格:"+500); 14 } 15 16 @Override 17 public String getName() { 18 return "篮球"; 19 } 20 }; 21 System.out.println(pro1.getName()); 22 pro1.getPrice(); 23 //匿名对象的实现类 24 String name=new Product() { 25 26 @Override 27 public void getPrice() { 28 System.out.println("价格"+599); 29 } 30 31 @Override 32 public String getName() { 33 return "足球"; 34 } 35 }.getName(); 36 System.out.println(name); 37 } 38 } 39 interface Product{ 40 String getName(); 41 void getPrice(); 42 } 43 class Computer1 implements Product{ 44 45 @Override 46 public String getName() { 47 return "联想电脑"; 48 } 49 50 @Override 51 public void getPrice() { 52 System.out.println("价格:"+4999); 53 } 54 55 }
原文地址:https://www.cnblogs.com/had1314/p/11373881.html
- 分布式事务 TCC-Transaction 源码解析 —— 调试环境搭建
- 机器学习入门——使用python进行监督学习
- 推荐算法的介绍,第一部分——协同过滤与奇异值分解
- 在ASP中实现UNIX时间戳
- 【学术】厉害了我的哥,国外技术大咖仿造了谷歌的Arts &Culture,找到古代的“你”
- 【技巧】应赛技巧,教你如何在Kaggle比赛中排在前1%
- 熔断器 Hystrix 源码解析 —— 命令执行(一)之正常执行逻辑
- 智能主题检测与无监督机器学习:识别颜色教程
- 如何下载安装Weka机器学习工作平台
- Dubbo 源码解析 —— LoadBalance
- 如何处理机器学习中类的不平衡问题
- 【死磕Java并发】—– Java内存模型之重排序
- Mask R-CNN源代码终于来了,还有它背后的物体检测平台
- 37个TOP实例命令,超过一半你肯定都没见过
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 时序数据库 InfluxDB(一)
- Netty一文深入
- 时序数据库 InfluxDB(三)
- 时序数据库 InfluxDB(四)
- 卧槽,我学会了用Python预测股票价格
- 自定义 ESLint 规则,让代码持续美丽
- 时序数据库 InfluxDB(五)
- 太牛逼了!用 Python 实现抖音上的“人像动漫化”特效,原来这么简单!
- Web 技术:CSS最小和最大(宽度/高度)知识点及优缺点
- javascript入门到进阶 - js系列七:生命周期
- 时序数据库 InfluxDB(六)
- [058]SQLite on Android
- 【Rust日报】2020-07-15 用Rust重写FORTRAN科学软件
- 一文读懂 DEX 文件格式解析
- Guava集合--新集合类型