码迷,mamicode.com
首页 > 编程语言 > 详细

Java抽象类和接口(三)

时间:2018-11-05 01:11:34      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:static   []   pac   低耦合   dell   四种关系   com   继承   str   

***********************体会接口的好处*******************************

一.可维护、可扩展


面向接口编程


接口:父类型


面向父类编程

 

二.解耦


高内聚、低耦合


耦合: 类和类之间的关系... 只要类和类之间有四种关系就是耦合(关联、继承、实现、依赖)


解耦: 紧密耦合------>松散耦合


public class Notebook {

private Screen14 screen = new Screen14();//只要new 紧耦合了


public void work(){
screen.display();//笔记本这个类和具体的Screen14这个类紧耦合
}
}


通过接口 解耦
----------------->

public class Notebook {

private IScreen screen;

public void setScreen(IScreen screen){
this.screen = screen;

}

}


三.通用性,方便统一的调用


举例: 让教室里的所有电脑 同时开机


接口不统一的坏处(进一步体验多态的优点)

if(是HP电脑){
hpPC.hpWork();
}else if(苹果电脑){
applePC.appleWork();
}else if(戴尔电脑){
dellPC.dellWork();
}


演示代码:


package com.chapter9.演示接口的好处;

//演示接口的好处之 通用性,方便统一的调用
public class Test {

public static void main(String[] args) {

/*PC[] pcArr = new PC[3];


HPPC hpPC = new HPPC();
ApplePC applePC = new ApplePC();
DellPC dellPC = new DellPC();

pcArr[0] = hpPC;
pcArr[1] = applePC;
pcArr[2] = dellPC;

for(int i=0;i<pcArr.length;i++){

if(pcArr[i] instanceof HPPC){//pcArr[i] 是 HPPC

((HPPC)pcArr[i]).hpWork();
}else if(pcArr[i] instanceof ApplePC){// 如果是 ApplePC
((ApplePC)pcArr[i]).appleWork();
}else if(pcArr[i] instanceof DellPC){// 如果是 DellPC
((DellPC)pcArr[i]).dellWork();
}
}*/

//使用接口以后的代码

IPC[] pcArr = new IPC[3];

HPPC hpPC = new HPPC();
ApplePC applePC = new ApplePC();
DellPC dellPC = new DellPC();

pcArr[0] = hpPC;
pcArr[1] = applePC;
pcArr[2] = dellPC;

for(int i=0;i<pcArr.length;i++){
pcArr[i].work();
}

}
}


***********************如何判断对象是不是某种类型************************


引用名a instanceof 类B


如果 引用a 是 类B的对象 返回的是 true,不是返回的是false

 

Java抽象类和接口(三)

标签:static   []   pac   低耦合   dell   四种关系   com   继承   str   

原文地址:https://www.cnblogs.com/MrTanJunCai/p/9906795.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!