题解:
Java学习笔记:
1.当子类引用父类的字段时,也就是当在子类中需要使用父类中的定义的对象时。可以使用super.字段名,this.字段名,也可以直接使用字段名。但如果子类中的方法参数是父类中的字段,就必须要使用super(),即子类不会继承任何父类的构造方法。子类默认的构造方法是编译器自动生成的,不是继承的。例如下图:
2.java只允许单继承,子父类的关系只能是is 不能是has。所有类的最终类是Object。
3.可以安全地向上转型为更抽象的类型;可以强制向下转型,最好借助instanceof
判断
4.多态:允许添加更多类型的子类实现功能扩展,却不需要修改基于父类的代码。
5.覆写:子类和父类的方法名返回值类型都一样。需要加上@Override(每个方法前),并且如果在子类中要调用父类的被覆写的方法,要通过super来调用,例如下图:
6.final:如果把方法标记为final,该方法就不能被覆写。如果一个类被标记为final,那么它就不能被继承。如果一个字段被标记为final,那它初始化之后值就不能被改变,除非定义方法改变值,并且方法的名字跟类名一样,并且是在创造实例的时候就赋值。
7.abstract抽象类:一个方法中没有具体执行代码,并且无法被被实例化,只是定义了一个方法典范,让继承它的子类去覆写方法。
8.接口:比抽象类还要抽象的纯抽象接口,因为它连字段都不能有。直接用interface定义,可以省略public abstarct。当一个具体的class
去实现一个interface
时,需要使用implements
关键字。在Java中,一个类只能继承自另一个类,不能从多个类继承。但是,一个类可以实现多个interface。中间用逗号分隔。
9.接口可以定义静态字段,类型为public static final,但一般可以省略。
9.default方法:可以理解是一个接口中的默认方法,无需在子类中覆写就可以直接使用。
10.静态方法只能访问静态字段。并且都可以利用类名.方法和类名.字段来分别调用。
11.package:对类进行分类。包中没有继承关系。同一个包中的字段和方法可以相互调用。
12.一个.java文件只能包含一个public类,但可以包含多个非public类
13.idea小技巧:
sout==System.out.println();
psvm==public static public main(String[] args)
14.classpath:是JVM用到的一个环境变量,它用来指示JVM如何搜索class.
15.jar包:为了便于管理各层目录中的.class文件,把目录打包成一个文件。