- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章.抽象类、接口
抽象类、接口
NIIT培训 铸就辉煌IT人生
目标:
抽象类
接口
内部类
枚举类型
抽象类
在定义Java方法时可以只给出方法头,而不必给出方法体、即方法实现的细节,这样的方法被称为抽象方法。
抽象方法必须使用关键字abstract修饰,包含抽象方法的类必须声明为抽象类。
Java语言规定,子类必须实现其父类中的所有抽象方法,否则该子类也只能声明为抽象类。
抽象类不能被实例化
抽象类主要是通过继承、再由其子类发挥作用的,其作用包括两方面:
代码重用
规划
其他特性:
抽象类中可以不包含抽象方法;
子类中可以不全部实现抽象父类中的抽象方法,但此时子类也只能声明为抽象类;
父类不是抽象类,但在子类中可以添加抽象方法,但子类需声明为抽象类;
抽象类中可以声明static属性和方法;
为什么使用接口
只有抽象方法的抽象类?
可以用接口来表示
接口有比抽象类更好的特性:
1.可以被多继承
2.设计和实现完全分离
3.更自然的使用多态
4.更容易搭建程序框架
5.更容易更换实现
……
用接口代替这样的抽象类,是因为:
什么是接口
认识一下接口
必须知道的接口特性
接口不可以被实例化
实现类必须实现接口的所有方法
实现类可以实现多个接口
接口中的变量都是静态常量
public interface MyInterface {
public void foo();
//其他方法
}
所有方法都是:
public abstract
抽象类除外
Java中的多继承
常作为类型使用
如何使用接口
用程序描述USB接口
如何使用接口
可以使用Java接口来实现
USB接口本身没有实现任何功能
USB接口规定了数据传输的要求
USB接口可以被多种USB设备实现
编写USB接口
实现USB接口
使用USB接口
根据需求设计方法
实现所有方法
用多态的方式使用
如何使用接口
编码实现
public class UDisk implements UsbInterface {
public void service() {
System.out.println(连接USB口,开始传输数据。);
}
}
public interface UsbInterface {
/**
* USB接口提供服务。
*/
void service();
}
UsbInterface uDisk = new UDisk();
uDisk.service();
编写接口
实现接口
使用接口
实现接口使用的关键字
用接口实现多态
多个接口使用“,”分隔
面向接口编程
开发打印机
墨盒:彩色、黑白
纸张类型:A4、B5
墨盒和纸张都不是打印机厂商提供的
打印机厂商要兼容市场上的墨盒、纸张
面向接口编程
用面向接口编程的方式开发
制定墨盒、纸张的约定或标准
打印机厂商使用墨盒、纸张的标准开发打印机
其他厂商按照墨盒、纸张的标准生产墨盒、纸张
定义墨盒接口InkBox
定义纸张接口Paper
定义打印机类
实现墨盒接口
实现纸张接口
约定墨盒标准
约定纸张标准
用墨盒、纸张接口实现打印方法
墨盒和纸张的规格是一种约定
打印机需要遵守这些约定
面向接口编程
public interface Paper {
/**
* 得到纸张大小
* @return 纸张大小
*/
public String getSize();
}
纸张的实现
public interface InkBox {
/**
* 得到墨盒颜色
* @return 墨盒颜色
*/
public String getColor();
}
墨盒的实现
嵌套类
Java语言支持类的嵌套定义,即允许将一个类定义在其他类的内部,其中内层的类被称为嵌套类(Nested Class)。
嵌套类可以分为两种:
静态嵌套类(Static Nested Class):使用static修饰的嵌套类;
内部类(Inner Class):非static的嵌套类。
public class A{
…
private class B{ //内部类
…
}
public static class C{ //静态嵌套类
…
}
}
内部类
内部类又可分为三种情况:
1. 普通的内部类:在Java类中、方法或语句块的外部定义的非static类。
2. 局部内部类:也称局部类(Local Class),定义在方法或语句块中的类。
3. 匿名内部类: 也称匿名类( AnonymousClass),定义在方法或语句块中,该类没有名字、只能在其所在之处使用一次。
内部类
内部类
文档评论(0)