1.1 abstract class和interface有什么区别。
1.从语法角度
abstract class方法中可以有自己的数据成员,也可以有非abstract的成员方法,并赋予方法的默认行为,而在interface方式中一般不定义成员数据变量,所有的方法都是abstract,方法不能拥有默认的行为
2. 从编程的角度
abstract class在java语言中表示的是一种继承关系,一个类只能使用一次继承关系。而一个类可以实现多个interface
3. 从问题域角度
abstract class在Java语言中体现了一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is a"关系,即父类和派生类在概念本质上应该是相同的。对于interface 来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的,仅仅是实现了interface定义的契约而已。
1.2 接口是否可继承接口? 抽象类是否可实现接口? 抽象类是否可继承实体类。
第一问:接口是可以继承接口的并且可以继承多个其它接口。
第二问:抽象类可以实现接口中的方法。
第三问:抽象类可以继承实体类。
1.3 nonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)。
匿名内部类是可以继承其它类,同样也可以去实现接口的,用法为:
这样的用法在swing编程中是经常使用的,就是因为它需要用到注册监听器机制,而该监听类如果只服务于一个组件,那么将该类设置成内部类/匿名类是最方便的。
1.4 什么是回调模式。
回调模式是指——如果一个方法的参数是接口类型,则在调用该方法时,需要创建并传递一个实现此接口类型的对象;而该方法在运行时会调用到参数对象中所实现的方法(接口中定义的)。