(四)UML-接口

前言

如果你有看过之前的(三) UML-类关系,你会发现博主刻意的规避了接口,并不是接口的的内容太过于复杂,其实接口的UML 图形反倒没多少内容,本文将稍带介绍一些接口的特性

接口、接口内的变量、接口内的方法

接口就是你看到的 Interface 修饰的 Java 类型
一般我们只会在接口中定义变量和抽象方法,其实也可以声明类,定义的接口内部也可以声明内部类,不过本文只探讨接口、接口变量和接口的方法

接口
  • 一个 Java 文件可以包含多个接口的定义,且接口相互不可重名
  • 接口(注意,不是接口方法)只可被 public、abstract 修饰或者不修饰,不可以被static、final、default、protected 修饰 (思考下为什么?
  • 接口默认被 abstract 修饰
  • 一个 Java 文件至多可以有一个接口被 public 修饰,至少可以有0个接口被 public 修饰
  • 被public 修饰的接口必须与 所在 Java 文件同名
  • 被 public 修饰的接口可以被跨包访问,未被 public 修饰的接口只能在本包内被访问
public interface TestInterface1

或者

interface TestInterface2
接口中的变量
  • 接口变量默认是 public final static 修饰的,所以接口的变量值需要初始化且无法修改
  • 子类可以拥有同名变量(如果以接口声明而子类创建对象则使用接口变量,如果使用子类声明且子类创建对象则使用子类变量)
//接口定义
public interface TestInterface {
	String name="123";
	
}
//子类定义
class TestAaa implements TestInterface{
	String name="456";
}
//测试方法
@Test
	public void test3(){
		TestInterface t=new Testaaa();
		Testaaa t2=new Testaaa();
		System.out.println(t.name);//123
		System.out.println(t2.name);//456
	}
接口的方法

接口中的方法默认使用 public abstract 修饰
接口中的方法不允许使用 private、protected、default、final、static 修饰

UML 中的接口

终于进入到关键话题了,在之前的介绍中 (https://blog.csdn.net/bestcxx/article/details/80878362)有提到,抽象类和抽象方法在 UML 中需要使用斜体 ,静态方法和静态变量在 UML 中增加下滑线,本文也介绍到,接口中常量是静态的,接口中方法和接口本身是抽象的,但是在 UML 中接口、接口的方法并不是斜体,接口的常量也不用下滑线,所以情况简单很多。

UML 之接口继承接口-泛化

接口继承接口和类中关系一致,子接口-实线-三角形-父接口

interface FirstInterface{
	String name="123";
	int getNumber(int i);
}
interface SecondInterface extends FirstInterface{}

在这里插入图片描述

UML 之 类实现接口-实现

类实现接口是 类-虚线-三角形-接口

class ThirdClass implements SecondInterface{
	@Override
	public int getNumber(int i) {
		// TODO Auto-generated method stub
		return 0;
	}
}

在这里插入图片描述

UML 类引用接口

规则和类中引用一致,也要结合场景,这里只举一个范例

class FourthClass{
	private FirstInterface firstInterface;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值