682 字
3 分钟
接口(interface)
接口(interface)
- 作用 传输数据 制定标准规范 降耦合
- 接口语法 定义接口: public interface 接口名{ [常量] [抽象方法] [默认方法和静态方法] }
public interface IFirst { public static final String name = "TOM"; //默认有abstract关键字 public void firstMethod(); //默认方法 default public void firstMethod2(){ System.out.println("firstMethod2"); } //静态方法 static public void firstMethod3(){ } }实现接口:关键字是implements ,其实实现接口 就相当于继承,只不过类和类是继承,类和接口是实现(特殊的继承)。类要重写接口中的所有抽象方法
接口不能实例化,创建接口实现类的对象
一个类可以实现多个接口
public class FirstImpl extends Object implements IFirst,ISecond { @Override public void firstMethod() { System.out.println("实现firstMethod方法"); } @Override public void secondMethod() { System.out.println("实现secondMethod方法"); } }public class FirstImpl extends Object implements IFirst,ISecond { @Override public void firstMethod() { System.out.println("实现firstMethod方法"); } @Override public void secondMethod() { System.out.println("实现secondMethod方法"); } public static void main(String[] args) { IFirst first = new FirstImpl(); ISecond second = new FirstImpl(); first.firstMethod(); }}接口和接口也可以继承(extends) ,是多继承
public interface ITest extends IFirst,ISecond { }
接口制定标准规范
要制作一个含有所有视频平台资源的一个视频网站
工厂设计模式
将创建对象的过程封装到工厂类中,当我们要获取对象时,从工厂类中获取
public class VideoFactory { public static IVideo getVideoObject(){ return new AQYVideo(); } } public class Test { public static void main(String[] args) { //出现了耦合度 //Test类是我们的平台 ,TenVideo是腾讯公司的类 IVideo video1 = VideoFactory.getVideoObject(); video1.getResource("xxx"); IVideo video2 = VideoFactory.getVideoObject(); video2.getResource("xxx"); IVideo video3 = VideoFactory.getVideoObject(); video3.getResource("xxx"); IVideo video4 = VideoFactory.getVideoObject(); video4.getResource("xxx"); } }面向对象的分析和设计
使用UML进行面向对象的分析和设计
先进行需求分析时,用例图的设计,类图设计(有哪些类,类和类的关系),时序图,状态图、活动图
类图
- 泛化/继承关系 : 在编程时,子类 extends 父类
- 实现关系: 在编程时,类 implements 接口
- 依赖关系:在编程时,使用接口解决依赖关系,因为依赖关系不是稳定的,是可替换的,通常在方法的参数上使用接口类型,例如,司机要使用汽车,是依赖关系,在司机类的驾驶方法中的参数就是 交通工具接口。
- 关联关系:在编程时,通过属性关联,例如在球员类中定义了一个球队属性 ,就是一个一对一的关联关系 ,例如在球队类中定义了一个球员的数组,就是一个一对多的关联关系。上面的两个例子组合,我们可以说球员和球队是双向关联。
接口(interface)
https://mizuki.mysqil.com/posts/9接口/ Java SE
Related articles
部分信息可能已经过时