Java学习笔记14(接口+工厂模式)
文章目录
- 接口
- 接口的特点:
- **为什么要接口**
- 工厂模式
接口
Java不支持多重继承。有了接口,就可以得到多重继承的效果。
接口(interface)是抽象方法和常量值的定义的集合。
从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
接口的特点:
用interface来定义。
接口中的所有成员变量都默认是由public static final修饰的。
接口中的所有方法都默认是由public abstract修饰的。
接口没有构造器。
接口采用多层继承机制。
定义Java类的语法格式:先写extends,后写implements
父类需要稳定和抽象
为什么要接口
哈哈哈哈
public abstract class Person1 {int age;String name;char sex;public abstract void method();}
/*** 会唱歌的会做饭的老师* @author jkjkjk**/
public class Cteacher extends Person1 implements Cooking, Singing{String course;//用set getpublic void setInfo() {super.age = 18;super.name = "wanba";super.sex = '男';this.course = "javajavajava";}@Overridepublic void method() {// TODO Auto-generated method stubSystem.out.println("会唱歌的会做饭的老师");System.out.println("会唱歌的会做饭的老师的年龄"+super.age);}@Overridepublic void fry() {// TODO Auto-generated method stubSystem.out.println("会唱歌的老师");}@Overridepublic void sing() {// TODO Auto-generated method stubSystem.out.println("会唱歌的老师");}}
public interface Singing {void sing();}
/*** cook接口* @author jkjkjk**/
public interface Cooking {void fry();}
工厂模式
源代码:
/*** 构建接口* @author jkjkjk**/
public interface BWM {void showInfo();}
/*** 构建具体车的类* @author jkjkjk**/
class BWM3 implements BWM{@Overridepublic void showInfo() {// TODO Auto-generated method stubSystem.out.println("这是宝马3");}
}class BWM5 implements BWM{@Overridepublic void showInfo() {// TODO Auto-generated method stubSystem.out.println("这是宝马5");}
}class BWM7 implements BWM{@Overridepublic void showInfo() {// TODO Auto-generated method stubSystem.out.println("这是宝马7");}
}
/*** 这是汽车生产工厂接口* @author jkjkjk**/
public interface BWMFactory {BWM productBWM();}/*** 实现具体车型的工厂* @author jkjkjk**/
class BWM3Factory implements BWMFactory{@Overridepublic BWM productBWM() {// TODO Auto-generated method stubSystem.out.println("生产BWM3");return new BWM3();}
}class BWM5Factory implements BWMFactory{@Overridepublic BWM productBWM() {// TODO Auto-generated method stubSystem.out.println("生产BWM5");return new BWM5();}
}class BWM7Factory implements BWMFactory{@Overridepublic BWM productBWM() {// TODO Auto-generated method stubSystem.out.println("生产BWM7");return new BWM7();}
}
public class Test2 {public static void main(String[] args) {BWM b3 = new BWM3Factory().productBWM();b3.showInfo();BWM b5 = new BWM5Factory().productBWM();b5.showInfo();BWM b7 = new BWM7Factory().productBWM();b7.showInfo();}}
通过工厂把new对象隔离了,通过产品的接口可以实现不同产品的实现类,实例的类名的改变不影响其他开发人员的编程
学而时习之
Java学习笔记14(接口+工厂模式)相关推荐
- 设计模式学习笔记(一)之工厂模式、单例模式
一.工厂模式 (1)简单工厂模式: 1 public interface IProduct { 2 3 public void saleProduct(); 4 5 } 创建一个产品接口,有一个卖产品 ...
- Java学习笔记004——接口、克隆、回调、内部类
接口 1.接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义 2.定义接口,如: public interface Abc{ int aaa(Object other) } 3 ...
- thinking in java 学习笔记 14 类型信息
第十四章 类型信息 尼玛,刚刚看完了亚冠,恒大这样都被连扳3球,尼玛的垃圾孙祥,恨死了那个全北现代 好吧,回到学习上 运行时类型信息使得你可以再程序运行时发现和使用类型信息 本章讨论的是java如何让 ...
- Java学习笔记14
Object类是所有类.数组.枚举类的父类,是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括 数组)都实现这个类的方法. Object类实现了以下方法: 我们来看看源码中clone ...
- Java学习笔记——函数式接口
一.函数式接口概述 函数式接口:有且仅有一个抽象方法的接口. Java中的函数式编程体现就是Lambda表达式,所以函数式接口就是可以适用于 Lambda表达式使用的接口.只有确保接口中有且仅有一个抽 ...
- java笔记冯佳微盘,JAVA学习笔记14 - osc_vsdge2u3的个人空间 - OSCHINA - 中文开源技术交流社区...
01(Map集合概述和特点) * A:Map接口概述 * 查看API可以知道: * 将键映射到值的对象 * 一个映射不能包含重复的键 * 每个键最多只能映射到一个值 * B:Map接口和Collect ...
- Java学习笔记—生产者和消费者模式
一.生产者和消费者问题 生产者消费者模式是一个十分经典的多线程协作的模式. 生产者和消费者问题包含了两类线程:一类是生产者线程用于生产数据, 一类是消费者数据用于消费数据. /*生产者消费者案例 包含 ...
- 大化设计模式学习笔记(简单工厂模式)
实质:生产具有相同逻辑的构造器类,也就是由一个工厂对象决定创建出哪一种产品类的实例 案例:计算器 demo见https://github.com/mrjdrs/sign-model.git
- java学习笔记day09 final、多态、抽象类、接口
java学习笔记day09 思维导图 final . 多态 . 抽象类 . 接口 (都很重要) 一.final 二.多态 多态中的成员访问特点⭐ [P237] 多态的好处 [P239] 多态的弊端 向 ...
最新文章
- redis, memcached, mongo性能比较
- cpp 条件判断 大于等于_第31p,if条件语句,请满足我的要求
- FreePascal - 如何在各个平台中安装CodeTyphon!
- linux内核高分辨率定时器,64位Linux上的高分辨率定时器支持
- 永不示弱_永不过时的网页设计:今天和2000年的在线投资组合
- Null hypothesis TypeⅠerror Type Ⅱ error
- 使用 保存文件_使用SaveFileDialog调用保存文件对话框
- 源代码安装apache遇到的问题解决
- 白岩松谈“房闹“现象
- POJ NOI0105-42 画矩形
- 用SQL Server(T-SQL)获取连接字符串
- 【无标题】炒外汇是什么,为什么有人说炒外汇能发财
- [转] 使用CPN Tools工具做简单的登录模型()
- [论文]深度强化学习在超视距空战机动规划的应用
- 穷查理宝典-读书笔记
- bootstrap简单的页面布局
- 微信小程序中view水平垂直居中
- 程序员代码表白 爱你三千遍
- 钉钉撤回的信息服务器内能否看到,在钉钉群中撤回消息别人能看到“你撒回了一条消息”的文字吗?...
- 微信自定义分享在pc正常手机端不正常问题