Java基础学习12
2021/10/3 17:41:01
本文主要是介绍Java基础学习12,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
接口的使用限制:接口里只允许存在public权限,不管是属性还是方法,其权限只能是public 当一个子类需要实现接口又需要继承抽象类时,先使用extends继承一个抽象类,再implements实现多个接口 一个接口可使用extends继承多个父接口
接口可以定义一系列的内部结构,包括内部的普通类、抽象类、内部接口, 其中使用static定义的内部接口相当于一个外部接口
interface INews100{ public abstract String get() ; String MSG = "www.aka.com";//即便不写public也是public } abstract class AbstractMessage implements INews100{ //只有接口中的abstract才能省略 public abstract void print(); } class NewsImpl extends AbstractMessage implements INews100{ public String get(){ //权限更严格,所以无法覆写 return MSG; } public void print(){ System.out.println("ssss"); } //有方法体就叫覆写 } public class Day12 { public static void main(String[] args) { INews100 news = new NewsImpl(); System.out.println(news.get()); //NewsImpl是抽象类和接口的共同子类 AbstractMessage am = (AbstractMessage) news; am.print(); } }
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iik03nbF-1633234196457)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20210924095141654.png)]
//代理设计模式 //代理的业务操作都会有一个与之辅助的功能类共同完成。 interface ISubject{ public void save(); //核心功能1是救人 } class RealSubject implements ISubject{ public void save(){ System.out.println("英勇的制止了犯罪分子"); } } class ProxySubject implements ISubject{ //代理实现 private ISubject subject;//真正的操作业务 //在创建代理类对象的时候必须设置要代理的真实主题 public ProxySubject(ISubject subject){ this.subject = subject; } public void broke(){ System.out.println("破门而入"); } public void get(){ System.out.println("得到见义勇为奖"); } public void save(){ //接口子类一定要实现的抽象方法 this.broke(); //真是操作前的准备 this.subject.save();//调用真实的业务 this.get(); //操作后的准备 } } class Factory100 { public static ISubject getInstance(){ return new ProxySubject(new RealSubject()); } } public class Test16 { public static void main(String[] args) { ISubject sub = Factory100.getInstance(); //通过代理类对象发出,利用代理类来实现真实业务调用 sub.save(); //救人的核心操作 } }
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k7mBbuRs-1633234196459)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20210924095224167.png)]
//使用接口定义标准 //使用接口和对象多态性的概念结合之后,对于参数统一更加明确。 interface USB{ public void setup();//安装USB驱动 public void work();//进行工作 } class Computer{ public void plugin(USB usb){//只能够插USB设备 usb.setup();//安装 usb.work(); //工作 } } class Flash implements USB{ //定义一个USB设备 public void setup(){ System.out.println("安装U盘驱动!"); } public void work(){ System.out.println("进行数据传输!"); } } class Print implements USB{ //定义一个USB设备 public void setup(){ System.out.println("安装打印机驱动!"); } public void work(){ System.out.println("进行文件打印!"); } } public class Test14 { public static void main(String[] args) { Computer com = new Computer(); com.plugin(new Flash()); com.plugin(new Print()); } }
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6SyzfiC7-1633234196460)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20210924095308794.png)]
com.plugin(new Flash()); com.plugin(new Print()); }
}
[外链图片转存中...(img-6SyzfiC7-1633234196460)]
这篇关于Java基础学习12的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-29RocketMQ底层原理资料详解:新手入门教程
- 2024-11-29RocketMQ源码资料解析与入门教程
- 2024-11-29[开源]6.1K star!这款电视直播源神器真的太赞啦!
- 2024-11-29HTTP压缩入门教程:轻松提升网页加载速度
- 2024-11-29JWT开发入门指南
- 2024-11-28知识管理革命:文档软件的新玩法了解一下!
- 2024-11-28低代码应用课程:新手入门全攻略
- 2024-11-28哪些办公软件适合团队协作,且能够清晰记录每个阶段的工作进展?
- 2024-11-28全栈低代码开发课程:零基础入门到初级实战
- 2024-11-28拖动排序课程:轻松掌握课程拖动排序功能