接口

接口:是一个特殊的抽象类,规定了接口的使用者和接口的实现者之间的规范
定义:interface 接口名 {}
特点:接口中定义的属性都是公开静态常量(即使不加修饰符,也默认是public static final)接口中定义的方法都是公开抽象方法(即使不加修饰符,也默认是public abstract)接口中没有构造方法,接口中无法定义成员边来那个,所以不需要构造方法给成员变量进行初始化赋值接口不能创建对象,但是可以声明引用

接口的实现类

语法:
class 类名 implements 接口 {}
定义实现类,实现接口,类创建对象,对象调用方法
特点:如果这个实现类不想成为一个抽象类,那么必须实现接口中所有的方法(公开抽象方法)
package com.HomeWork;public class Test {public static void main(String[] args) {//创建Audi车对象a,调用跑方法Audi a = new Audi();a.run();//创建SmartAudi车对象sa,调用跑,自动泊车,自动驾驶方法SmartAudi sa = new SmartAudi();sa.run();sa.automaticDrive();sa.automaticParking();//定义Audi类型的变量 aa 把sa赋值aa,aa只能调用run方法Audi aa = sa;aa.run();//aa向下转型为saaSmartAudi saa = (SmartAudi) aa;//调用自动泊车和自动驾驶方法saa.automaticDrive();saa.automaticParking();//定义Smart类型的变量s,把sa赋值给s,测试只能调用自动泊车和自动驾驶方法,不能调用run方法Smart s = sa;s.automaticDrive();s.automaticParking();  }
}//父类
class Audi {public void run() {System.out.println("奥迪车在跑");}
}//接口
interface Smart {void automaticParking();void automaticDrive();
}//继承+实现类
class SmartAudi extends Audi implements Smart {@Overridepublic void automaticParking() {System.out.println("智能奥迪车在自动泊车");}@Overridepublic void automaticDrive() {System.out.println("智能奥迪车在无人驾驶");}}

类与类,类与接口,接口与接口的关系

在java的设计思想中,把主要的角色设置为父类(单继承),次要的角色设置为接口(多实现)
类与类:继承关系(extends),一个类只有一个直接父类,为单继承,可以多级继承。
接口与接口:可以单继承;也多继承,一个接口可以有多个直接的父类接口;也可以多级继承。
类与接口:实现关系(implements),一个类可以实现多个接口格式:class 类名 implements 接口1,接口2,接口3...{需要重写所有接口中的方法!!!}类继承一个类,同时实现多个接口的时候,先继承,后实现。
类与接口的区别:抽象类:定义物体本身固有的属性和行为接口:定义物体通过学习、训练而扩展出来的行为

电脑USB案列

package com.ujiuye.demos;public class Demo_13 {//电脑USB案例/*定义个电脑(computer)类型,要求有开机(turnOn)关机(turnOff),玩游戏(playGame),看小电影(lookMoive),并且能够使用指定的外接设备,键盘keyboard 鼠标mouse在测试类中,创建电脑对象,调用开机等功能,并接入外接设备,调用外接设备中的功能,最后关机*/public static void main(String[] args) {Computer com = new Computer();com.turnOn();
//      创建鼠标对象Mouse m = new Mouse();com.useUSB(m);
//      创建一个键盘录入对象Keyboard key = new Keyboard();com.useUSB(key);com.playGame();com.lookMovie();com.turnOff();}
}//定义一个电脑类
class Computer {//  开机方法public void turnOn() {System.out.println("开机");}//    关机方法public void turnOff() {System.out.println("关机");}//   玩游戏public void playGame() {System.out.println("打游戏");}//  看电影public void lookMovie() {System.out.println("看电影");}// 使用USB将外接设备接入电脑public void useUSB(USB u) {u.joinUSB();}
}interface USB {public void joinUSB();
}//定义出来鼠标类
class Mouse implements USB {@Overridepublic void joinUSB() {System.out.println("鼠标接入电脑");}
}//定义一个键盘类
class Keyboard implements USB {@Overridepublic void joinUSB() {System.out.println("键盘接入电脑");}
}

Java基础---接口是啥?相关推荐

  1. java基础-----接口

    接口 : 英文称作interface,在软件工程中,接口泛指供别人调用的方法或者函数.从这里,我们可以体会到Java语言设计者的初衷,它是对行为的抽象.在Java中,定一个接口的形式如下: [publ ...

  2. [Java 基础]接口

    抽象类和抽象方法 抽象方法 在面向对象编程语言中抽象方法指一些只有方法声明而没有具体方法体的方法抽象方法一般存在于抽象类或接口中. java中,抽象方法就是以 abstract 修饰的方法,只需要声明 ...

  3. Java基础---接口的使用

    接口 接口:是一个特殊的抽象类,规定了接口的使用者和接口的实现者之间的规范 定义:interface 接口名 {} 特点:接口中定义的属性都是公开静态常量(即使不加修饰符,也默认是public sta ...

  4. java基础/接口与继承1(0.96万字)

    文章目录 接口 创建接口 使用接口 什么样的情况下该使用接口? 对象转型 明确引用类型与对象类型的概念 子类转父类(向上转型) 父类转子类(向下转型) 总结 没有继承关系的两个类,互相转换,一定会失败 ...

  5. java基础[接口]

    接口作用:将两个不同的东西连接起来,让他们共同去工作! 具体类:定义某一具体的事物: 抽象类:定义某一类不同种的事物: 接口:定义不同类型的不同种事物,但是却有共同的行为,注重事物的行为,而不是事物的 ...

  6. Java基础——接口

    一.接口语法 接口的创建 interface //接口不能直接创建对象 public interface grammar {//定义的属性都是公有静态属性(默认也是)String name = &qu ...

  7. java基础-接口与实现

    接口的定义和类的定义很相似,可以分为接口声明和接口体积,和类不同的是,使用关键字interface来声明自己是一个接口. 格式如下; interface 接口的名字 这里需要注意的是: 1.如果一个非 ...

  8. java基础--接口(interface)

    接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 接口并不是类,编写接口 ...

  9. [Java基础]接口基础

    接口:

最新文章

  1. java jmi的基本思想_jmi: JMI 是 JNI 的 C++11/14封装,目的是为了简化JNI使用
  2. Note - Shader - 2
  3. maven 安装后变成 mvn 不是内部命令解决方法
  4. win10下装win7双系统_双系统win10+win7,双硬盘互相引导
  5. LINUX系统配置相关
  6. html 分页 惰性加载,懒加载实现的分页网站footer自适应
  7. java biginteger相比_java Biginteger类
  8. 阿里云磐久服务器M系列研发之路
  9. Maven搭建SpringMVC项目详解
  10. python爬虫之urllib
  11. 哇嘎显示等待无服务器,vagaa搜索不到资源怎么回事?vagaa哇嘎搜索没反应的解决方法...
  12. SQL Server AlwaysOn部署
  13. 猿辅导国奖选手妈妈在线分享教育经:数学新生代的成长之路
  14. 如何用Deep Learning为股票定价
  15. 新年将至, 程序员如何以代码送出新春祝福
  16. 响应式织梦模板智能无人机类网站
  17. GN及Ninja基本语法
  18. Vue - 获取汉字拼音首字母(将汉字转为拼音,取出首字母)
  19. doe五步法_minitab中实验设计(doe).pdf
  20. Flex加载swf的几个要点

热门文章

  1. JavaScript 循环
  2. mysql 数据库锁一般处理
  3. Codeforces-741A-Arpa's loud Owf and Mehrdad's evil plan(找有向图环及最大公倍数计算)
  4. sshpass批量执行操作
  5. Swift - 操作表(UIActionSheel)的用法,也叫底部警告框
  6. 输入一个浮点数,并输出该数的整数部分和小数部分
  7. 装饰者模式(Decorator)
  8. ASPNET揭秘笔记之三
  9. ECCV 2020 | 清华提出基于循环关联的自监督行人再识别, 无标签ReID仅需两个摄像头!...
  10. ICDAR 2019 文本识别冠军方案将开源!