网站建设公司广告语,建设网站的项目策划书,湖南网站推,WordPress网页描述标签今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、抽象 三、接口 零、 复习昨日 多态的好处: 扩展性强.加入新的功能,不需要改动代码降低代码耦合度(解耦合或者松耦合) 一、抽象类
1.1 抽象类…今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、抽象 三、接口 零、 复习昨日 多态的好处: 扩展性强.加入新的功能,不需要改动代码降低代码耦合度(解耦合或者松耦合) 一、抽象类
1.1 抽象类语法 正常类内有成员,成员属性和成员方法 生活中的抽象: 就是看不懂,不理解… 程序中的抽象类: 跟之前正常类不太一样,有点看不懂… 抽象类的语法 抽象类还是类抽象类具体是方法变抽象了,是方法没有方法体没有方法体要使用abstract修饰抽象方法必须放在抽象类中抽象类是使用abstract修饰的类抽象类中可以有正常方法抽象类中可以有构造方法的,但是不能创建对象 抽象类方法很抽象只有方法签名,没有方法体,没有方法执行! 有构造方法又不能创建对象!!! 那么抽象类存在的意义是什么?? 主要用处就是用来当父类的!! 即用来被继承 子类可以继承抽象类继承后必须实现(implement)父类全部抽象方法否则自己类也要定义成抽象类 1.2 抽象类应用
抽象类主要应用场景,就是多态! 将之前的父类变成抽象父类即可,其他用法不变!!
练习1: 改造形状类题目. 形状父类改造成抽象类,其他正常,求各个类的周长和面积
练习2: 改造灯泡类题目. 灯泡类改造成抽象类,其他正常,台灯类实现开各种灯
1.3 总结
为什么需要这么设计成抽象? 抽象类是用来抽象差异性、具体共同点的。也就是将差异性方法抽象化提供给子类使 用。共同的方法具体化所有子类继承。 把子类不一样的方法抽象成抽象方法,每个子类都重写 把子类都一样的方法提取到父类,每个子类直接用,不用重写 二、接口
2.1 接口语法 接口比抽象类更抽象的一种java文件,不是类. 接口的语法特点: 接口中属性是常量,没有变量,默认被 public static final修饰接口中的方法默认被public abstract修饰,即每个方法都是抽象方法接口中不能有构造方法,不能创建对象 子类实现接口,要求重写全部抽象方法否则子类定义抽象类类可以实现多个接口类可以同时继承加实现 (先继承再 接口是可以继承接口,且支持多继承 public interface USB {/*** 接口中属性是常量,没有变量* 默认被 public static final修饰*/public static final int length 1;/*** 接口中的方法默认被public abstract修饰* 即每个方法都是抽象方法*/public abstract void chuanshu();/*** 接口中不能有构造方法* 不能创建对象*/
}
/*** --- 天道酬勤 ---** author QiuShiju* desc 键盘 实现 接口* 1 子类实现接口,要求重写全部抽象方法否则子类定义抽象类* 2 类可以实现多个接口* 3 类可以同时继承加实现 (先继承再实现)*/
public class Keyboard extends Suliao implements USB , Electron{Overridepublic void chuanshu() {System.out.println(键盘传输数据 );}Overridepublic void tongdian() {System.out.println(通电 );}
}2.2 接口应用
接口也可以当做父引用指向子类对象,在多态的场景中使用. // 接口当做父引用指向子实现类对象USB usb new Keyboard();USB usb2 new Mouse();usb2.chuanshu();改造台灯类为台灯接口
// 灯泡接口
public interface Bulb {void light();
}
// 红灯泡实现接口
public class RedBulb implements Bulb{Overridepublic void light() {System.out.println(发红光 );}
}
// 台灯
public class TableLamp {public void open(Bulb bulb) {bulb.light();}public static void main(String[] args) {// 买台灯TableLamp tableLamp new TableLamp( );// 买灯泡RedBulb redBulb new RedBulb( );// 开灯tableLamp.open(redBulb); // Bulb bulb new RedBulb( );tableLamp.open(new YellowBulb());}
}2.3 总结 接口微观概念接⼝是⼀种能力和约定 接⼝的定义代表了某种能⼒。 ⽅法的定义能⼒的具体要求。 接口
public interface Flyable {void fly();
}
public class People implements Flyable{Overridepublic void fly() {System.out.println(人飞,从楼上跳下飞... );}
}
------------------------------------------------------public static void main(String[] args) {show(new Keyboard());show(new People());}public static void show(Flyable flyable) {flyable.fly();} 宏观概念接⼝是⼀种标准、规范。 其实,用的时候就是跟多态场景一样, 1)将方法的参数列表定义成接口类型,调用方法时传入子实现类 2)定义接口类型数组,向数组存储接口的实现类对象 扩展阅读
接口即是设计在设计层面接口可以避免我们陷入对细节的过多思考
可以让我们站在一个更高的视角对系统做更好的评估比如系统的交互
设计是否合理功能是否缺失是否具备可行性是否过于复杂等等。public boolean login(String username,String password)
接口即是约定在编码层面接口可以明确的告诉开发人员如何使用
接口的语义需要什么作为输入会有什么输出而开发人员只
需要根据这些约定去实现具体的功能代码即可。前后端开发时会有一个接口文档