文章目录

  • 接口
    • 接口的特点:
    • **为什么要接口**
  • 工厂模式

接口

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)简单工厂模式: 1 public interface IProduct { 2 3 public void saleProduct(); 4 5 } 创建一个产品接口,有一个卖产品 ...

  2. Java学习笔记004——接口、克隆、回调、内部类

    接口 1.接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义 2.定义接口,如: public interface Abc{ int aaa(Object other) } 3 ...

  3. thinking in java 学习笔记 14 类型信息

    第十四章 类型信息 尼玛,刚刚看完了亚冠,恒大这样都被连扳3球,尼玛的垃圾孙祥,恨死了那个全北现代 好吧,回到学习上 运行时类型信息使得你可以再程序运行时发现和使用类型信息 本章讨论的是java如何让 ...

  4. Java学习笔记14

    Object类是所有类.数组.枚举类的父类,是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括 数组)都实现这个类的方法. Object类实现了以下方法: 我们来看看源码中clone ...

  5. Java学习笔记——函数式接口

    一.函数式接口概述 函数式接口:有且仅有一个抽象方法的接口. Java中的函数式编程体现就是Lambda表达式,所以函数式接口就是可以适用于 Lambda表达式使用的接口.只有确保接口中有且仅有一个抽 ...

  6. java笔记冯佳微盘,JAVA学习笔记14 - osc_vsdge2u3的个人空间 - OSCHINA - 中文开源技术交流社区...

    01(Map集合概述和特点) * A:Map接口概述 * 查看API可以知道: * 将键映射到值的对象 * 一个映射不能包含重复的键 * 每个键最多只能映射到一个值 * B:Map接口和Collect ...

  7. Java学习笔记—生产者和消费者模式

    一.生产者和消费者问题 生产者消费者模式是一个十分经典的多线程协作的模式. 生产者和消费者问题包含了两类线程:一类是生产者线程用于生产数据, 一类是消费者数据用于消费数据. /*生产者消费者案例 包含 ...

  8. 大化设计模式学习笔记(简单工厂模式)

    实质:生产具有相同逻辑的构造器类,也就是由一个工厂对象决定创建出哪一种产品类的实例 案例:计算器 demo见https://github.com/mrjdrs/sign-model.git

  9. java学习笔记day09 final、多态、抽象类、接口

    java学习笔记day09 思维导图 final . 多态 . 抽象类 . 接口 (都很重要) 一.final 二.多态 多态中的成员访问特点⭐ [P237] 多态的好处 [P239] 多态的弊端 向 ...

最新文章

  1. redis, memcached, mongo性能比较
  2. cpp 条件判断 大于等于_第31p,if条件语句,请满足我的要求
  3. FreePascal - 如何在各个平台中安装CodeTyphon!
  4. linux内核高分辨率定时器,64位Linux上的高分辨率定时器支持
  5. 永不示弱_永不过时的网页设计:今天和2000年的在线投资组合
  6. Null hypothesis TypeⅠerror Type Ⅱ error
  7. 使用 保存文件_使用SaveFileDialog调用保存文件对话框
  8. 源代码安装apache遇到的问题解决
  9. 白岩松谈“房闹“现象
  10. POJ NOI0105-42 画矩形
  11. 用SQL Server(T-SQL)获取连接字符串
  12. 【无标题】炒外汇是什么,为什么有人说炒外汇能发财
  13. [转] 使用CPN Tools工具做简单的登录模型()
  14. [论文]深度强化学习在超视距空战机动规划的应用
  15. 穷查理宝典-读书笔记
  16. bootstrap简单的页面布局
  17. 微信小程序中view水平垂直居中
  18. 程序员代码表白 爱你三千遍
  19. 钉钉撤回的信息服务器内能否看到,在钉钉群中撤回消息别人能看到“你撒回了一条消息”的文字吗?...
  20. 微信自定义分享在pc正常手机端不正常问题

热门文章

  1. 从零开始做3D地图编辑器(六)(基于QT与OGRE)
  2. WinRAR官方正式版注册码
  3. Hadoop——Hadoop优势、组成、大数据技术生态体系、系统框架图
  4. flex-grow和flex的区别
  5. P2300 合并神犇 DP
  6. Implicit Intent--含蓄的intent
  7. 海思HI35xx平台CPU温度监测
  8. seata的形象化比喻
  9. 电脑小问题:定时关机的设置
  10. 杂谈之WEB前端工程师身价