java 07 接口

Wesley13
• 阅读 697

1.interface 

     接口

2.接口中的成员修饰符固定

    public static fianl    //成员变量    只通过类访问

    public abstract       //成员函数     

3.接口里所有的方法都是抽象的,抽象类中,可以没有抽象方法。

   类与类继承,类与接口是实现的关系。降低耦合(高内聚,低耦合)。

  通过接口实现多重继承。

4.最低标准

一、继承中的方法和字段谁可以被覆盖,为什么?

方法可以覆盖,字段不可以,因为字段是数据。

二、什么是多态

对象的多种状态,类与类继承,类与接口是实现的关系

 三、接口往类转就要强转,类往接口转不需要

class Interfacedemo{
public static void main(String[] agrs){
PC pc =new PC();
Mouse m = new Mouse();
//启动接口,调用play
pc.insertUSB(m);
}
}

//实现接口。定义以接口为参数的方法
class PC {
public void insertUSB( USB usb){
System.out.println("插入了usb");
//调用play
usb.play();
}

}

//定义接口
interface USB{
void play ();
}

//类实现接口
class Mouse implements USB{
public void play(){
System.out.println("鼠标滑动");

}
}

//三个设备插入

class Interfacedemo{
public static void main(String[] agrs){
PC pc =new PC();
//启动接口,调用play
pc.insertUSB(new Mouse(),"cdewm");
pc.insertUSB(new Mp3(),"测车位");
pc.insertUSB(new Camera(),"出卖我也");
}
}

//实现接口。定义以接口为参数的方法
class PC {
public void insertUSB( USB usb,String pg){
//System.out.println("插入了设备");
//调用接口中的play
usb.play(pg);
}

}

//定义接口
interface USB{

//抽象方法
void play (String pg );
}

//类实现接口
class Mouse implements USB{
public void play(String pg){
System.out.println(pg +"鼠标滑动");

}
}

class Mp3 implements USB{
public void play(String pg){
System.out.println(pg+"MPs 播放");

}
}

class Camera implements USB{
public void play(String pg){
System.out.println(pg+"准备照相");

}
}

//习题

class IMothernterfacedemo{
public static void main(String[] agrs){

MotherBoard M =new MotherBoard();
Vido v =new Vido();
Sound s =new Sound();
Netcard N =new Netcard();
v.play();
s.play();
N.play();
}
}

class MotherBoard {
public void insertmother(PCI p){
p.play();
}

}

//定义接口
interface PCI{
void play();
}

//实现接口
class Vido implements PCI{
public void play (){
System.out.println("插入主板声卡");
}

}

class Sound implements PCI{
public void play (){
System.out.println("插入主板音ka");
}

}

class Netcard implements PCI{
public void play (){
System.out.println("插入主板音网卡");
}

}

//多个接口的实现待修改

class Interfacedemoplus{
public static void main(String[] agrs){
Tuhao sisi =new Tuhao();
Womanstar Won =new Womanstar();
//启动接口,调用play
sisi.marry(Won);
}
}

//实现接口。定义以接口为参数的方法
class Tuhao {
public void marry(WRB w){
w.vertWhit();
w.hasmoney();
w.Beau();
System.out.println("符合条件");
}

}

//定义接口
interface Whit{
void vertWhit ();
}

interface Rich{
void hasmoney ();
}

interface Beautiful{
void Beau ();
}
//一个接口继承三个接口
interface WRB extends Whit,Rich,Beautiful {

}

//类实现接口多个接口
class Womanstar implements Whit,Rich,Beautiful {
public void vertWhit(){
System.out.println("很白");
}
public void hasmoney(){
System.out.println("有钱
");
}
public void Beau(){
System.out.println("美丽~~");
}
}

//接口常量

class Interfacedemochangliang{
public static void main(String[] agrs){
Jing8 jj =new Jing8();
jj.meng();
//类名访问变量
System.out.println(Pet.leg);
}
}
//接口中加入常量
interface Pet{
int leg = 4;
void meng();

}

class Jing8 implements Pet{
public void meng(){
System.out.println(leg+"萌萌哒");
}

}

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
Java 接口基础详解
目录Java接口示例实现一个接口接口实例实现多个接口方法签名重叠接口变量接口方法接口默认方法接口与继承继承与默认方法接口与多态性在Java中,接口是一个抽象类型,有点类似于类,但Java接口只能包含方法签名与属性,
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这