抽象方法一定存在于抽象类中,子类如果想要继承抽象类,必须要实现抽象类中定义的全部抽象方法,如果只实现抽象类中的部分抽象方法,则这个子类仍然是抽象类
1. 当一个抽象类中的方法全为抽象方法时,可以理解为接口
2. 子类实现接口时,实现的方法全是Public修饰的,这一点与继承抽象类不同
3. 接口中的常量是publicstatic final int NUM=3;
接口中的方法是public abstract void show();
上述的红体部分在编译时会自动补全
4. 一个类可以实现多接口,但不能实现多继承。原因在于多接口不存在重复复写,但是多个父类会出现同名的已经实现功能的方法不能调用的问题
5. 接口Test里面存在成员变量NUM, Test.NUM这种形式合法,但是由于NUM是final修饰,所以NUM的值不许修改
6. 抽象类中一般书写基本功能,接口中一般定义拓展选项功能
7. 多态的核心概念:向上转型,向下强转
即父类的引用可以指向子类的对象,父类的引用可以强转为子类对象
8. Fu f=new Zi();
在上式中,非静态成员函数编译时看右边,静态成员函数和成员变量在编译和运行时都看左边
9. equals()是任何Object中都存在的方法,定义在Object中,比较对象的实际地址值
10. Object对象中的常用方法有equals()、getClass()、getName()、toString()
其中toString返回的值是 对象对应类名@16进制的Hash地址值
11. 子类在复写父类的方法时,只有方法体不一样,返回值类型和参数一致才能复写
12. 一个类可以定义多个内部类,内部类可以直接访问外部类的成员变量和函数
13. 通常情况下,内部类修饰为private,不让外部访问
14. 其他类访问一个类的内部类的方式:Outer.Innerin=new Outer().new Inner()
15. 当内部类被Static修饰时,只能访问外部类中的static数据成员
16. 内部类中出现static成员时,内部类也必须是静态的
17. 匿名内部类的使用前提:内部类必须是继承一个类,或者是实现一个接口
18. Throwable是Java异常体系的一个超类
有两个子类Error(严重无救)和Exception(不严重可救)
19. JVM的异常处理机制就体现在e.printStackTrace();语句中
20. throws语句通常写在类或者方法的末尾,调用方法的地方写try…catch
throws语句最好更具体,并且与catch语句一一对应
21. 可以自定义异常对象,继承Throwable体系中的任意一个异常类,Throwable体系中的对象才具有可抛性 (能被Try…catch语句捕捉)
22. throws用在函数上,后面可以跟多个异常类用,隔开 throws FushuException
throw用在函数内,后面接异常对象 throw new FushuException();
24.子类在调用super语句时,必须放在构造方法的第一条语句