java面试必备之抽象类、接口
Java抽象类和接口
一、抽象类:
1)由abstract修饰
2)包含抽象方法的类必须是抽象类
不包含抽象方法的类也可以声明为抽象类----我乐意
3)抽象类不能被实例化
4)抽象类是需要被继承的,子类:
4.1)重写所有抽象方法----常用
4.2)也声明为抽象类------不常用
5)抽象类的意义:
5.1)包含公共的属性和行为,被子类所共享--代码重用
5.2)为所有子类提供一种公共的类型--向上造型
5.3)包含抽象方法,为所有子类提供一个统一的入口
子类有不同的实现
抽象方法:
1)由abstract修饰
2)只有方法的定义,没有方法的实现(大括号都没有)
二、接口:
1)是一个标准、规范
遵守了这个标准,就能干某件事----API后了解
2)由interface定义,接口是完全抽象的抽象类,接口是继承的单根性的扩展
3)只能包含常量和抽象方法
4)接口不能被实例化
5)接口是需要被实现/继承的,实现类/子类:
必须重写接口中的所有抽象方法
6)一个类可以实现多个接口,用逗分隔
若又继承又实现时,应先继承extends后实现implements
7)接口可以继承接口
三、内部类
内部类:内部类有自己独立的.class
1)成员内部类:不太常用
1.1)类中套类,外面的叫外部类,里面的叫内部类
1.2)内部类通常只服务于外部类,对外不具备可见性
1.3)内部类对象通常是在外部类中创建的
1.4)内部类中可以直接访问外部类的成员(包括私有的)
内部类中有个隐式的引用指向创建它的外部类对象
语法: 外部类名.this.
2)匿名内部类:比较常用
2.1)如果想创建一个类的对象,并且对象只被创建一次,
此时该类不必命名,称为匿名内部类
2.2)匿名内部类中访问外部的数据,该数据必须是final的
<!--EndFragment-->上一篇: php的抽象类