1.==和equal的区别。对于String对象而言,==比较的是两个对象是否一样,而equal表示两个对象的值是否一样
2.类中初始化数据时,如果没有对成员变量初始化,则数据类型会初始化为0,bool类型初始化为false,对象类型 初始化为null
3.public表示包外可用,static强调他们只有一个,final表明它是一个常数。
4.final方法:上锁,防止任何继承类改变它本来的含义,不可被覆盖和改写
5.内部类:完全禁止其他人员依赖类型代码,将实施细节完全隐藏
每个内部类都能独立地继承自一个实现,无论外围类是否已经继承某个实现,对于内部类都没有影响。内部类使得多重继承的解决方案变得完整。接口解决了部分问题。
(1)完善多重继承。C++多继承中,两个父类有同样名字的函数?
(2)实现继承事件驱动系统
(3)闭包:
- 内部类是面向对象的闭包,因为它不仅包含创建内部类的作用域的信息,还自动拥有一个指向此外围类对象的引用,在此作用域内,内部类有权操作所有的成员,包括private成员。一般使用一个库或类时,是你主动调用人家的API,这个叫Call,有的时候这样不能满足需要,需要你注册(注入)你自己的程序(比如一个对象),然后让人家在合适的时候来调用你,这叫Callback。
- 当父类和实现的接口出现同名函数时,你又不想父类的函数被覆盖,回调可以帮你解决这个问题。