栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java小树的参天成长【接口,接口的语法,使用方法,接口与抽象类的区别,接口的规范, 接口的概念 ,接口引用 ,接口的多态 ,常见关系,常量接口,标记接口,什么是接口,接口的回调 】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java小树的参天成长【接口,接口的语法,使用方法,接口与抽象类的区别,接口的规范, 接口的概念 ,接口引用 ,接口的多态 ,常见关系,常量接口,标记接口,什么是接口,接口的回调 】

注意:本作品前三个代码都是相连的

接口的语法:public interface 接口名{

}

1.接口相当于特殊的抽象类,定义方式,组成部分与抽象类类似;

2.接口没有构造方法,不能创建对象,但可以用来定义变量;

3.只能定义公开的静态常量,公开的抽象方法。 


package interface1;

public interface MyInterface1 {
    //公开的静态常量
    public static final String NAME = "接口1";//public static final 可省略,默认会添加
    //公开的抽象方法
    public abstract void method1();//public abstract 可省略,默认会添加
}


接口的使用需要一个实现类

语法:public class 类名 implement 接口名{

}


package interface1;(承接上述代码)

public class Impl implements MyInterface1{//实现类

    @Override
    public void method1() {//类实现接口,必须覆盖接口中的所有方法
        // TODO 自动生成的方法存根
        System.out.println("method");
    }


使用方法(承接上述两个代码)

通过接口调用接口的方法(实际上是实现类的方法,接口中为公开的抽象方法,实现类重写了该方法)

package interface1;

public class TestInterface {//测试类
    public static void main(String[] args) {
        MyInterface1 myinterface1 = new Impl();//看这里,多态的形式,引用类型
        myinterface1.method1();//还有这里
    }
}


接口与抽象类的区别

相同点:

1.可编译成字节码文件。

2.不能创建对象。

3.可以作为引用类型(见上述代码引用类型处)。

4.具备Object类中所定义的方法(也就是说可以通过接口调用Object中的方法)

不同点:

1.接口所有的属性都是公开静态常量,默认使用public static final 修饰。

2.接口所有方法都是公开抽象方法,默认使用public abstract 修饰。

3.接口没有构造方法,静态和动态代码块。


接口的概念

微观概念:接口是一种能力(接口的实现类具有了某种能力)

1.接口的定义:代表了某种能力。

2.方法的定义:能力的具体要求。

经验:java为单继承,当父类的方法种类无法满足子类的需求时,可以实现接口扩充子类。

接口支持多实现,可为类扩充多种能力。语法:implements 接口名,接口名,接口名....{}


接口的规范

1.任何类在实现接口时,必须实现接口中所有的抽象方法,否者此类为抽象类。

2.实现接口中的抽象方法时,访问修饰符必须是public。

接口引用

同父类一样,接口也可声明为引用,并指向实现类对象。(可以使用接口创建变量,不能创建对象)

注意:

1.仅可调用接口中声明的方法,不可调用实现类中独有的方法(就和多态一样的)

2.可强转回实现类本身类型,进行独有方法调用。

3.【特殊:通过接口可调用Object中公开的方法。】


接口的多态

见上图蓝色框代码,多种不同类型的引用指向同一个对象的时候,表示看待对象的视角不同。

1.这里的Dog myDog:将狗当狗看

2.Animal a:将狗当动物看

3.Runnable r:将狗当会跑的东西看

4.Swimmable s:将狗当做会游泳的东西看

不同引用所能看到的对象范围不同,只能调用自身类型所声明的部分。


常见关系:

【类与类】

单继承

extends 父类名称

【类与接口】

多实现

implements  接口名1,接口名2,接口名n

【接口与接口】

多继承

extends 父接口1,父接口2,父接口n


常量接口,标记接口

常量接口将多个常用于表示状态或固定值的变量,以静态常量的形式定义在接口中统一管理,提高代码的可读性

标记接口中没有包含任意成员,仅仅用作标记

1.Serializable

2.Cloneable


什么是接口

1.宏观概念:接口是一种标准。

 接口的回调 

先有接口的使用者,后有接口的实现者。

比如下面代码,电脑是使用者,它的调用者可以是下面的三种物体,也可以不是下面的几种物体。三个usb接口可以对接不同的物体。无论是否对接,三个usb接口都存在(看自己电脑就知道了)

package com.mh.interface_5;
//测试类
public class Test {
	public static void main(String[] args) {
		Computer lenovo = new Computer();
		Usb mouse = new Mouse();//使用接口创建对象
		Usb fan = new Fan();//使用接口创建对象
		Usb jinshidun = new Upan();//使用接口创建对象
		
		lenovo.usb1=mouse;
		lenovo.usb2=fan;
		lenovo.usb3=jinshidun;
		lenovo.run();
	}
}

//接口的使用者 电脑
public class Computer {
	Usb usb1;//usb接口
	Usb usb2;//usb接口
	Usb usb3;//usb接口
	public void run() {
		System.out.println("电脑开始工作");
		if(usb1!=null){
			usb1.service();
		}
		if(usb2!=null){
			usb2.service();
		}
		if(usb3!=null){
			usb3.service();
		}
	}
}


//调用者鼠标
public class Mouse implements Usb{

	@Override
	public void service() {
		System.out.println("鼠标连接成功");
		
	}

}

//调用者风扇
public class Fan implements Usb{

	@Override
	public void service() {
		System.out.println("风扇连接电脑成功");
		
	}

}


//调用者upan
public class Upan implements Usb{

	@Override
	public void service() {
		System.out.println("Upan连接电脑成功开始工作");
		
	}
	
}


//接口Usb
public interface Usb {
	void service();
}

创作不易,请多支持,如有不足,请指出

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1035433.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号