- java 中虽然是单继承,但是继承具有传递性。
比如:A派生出B,B派生出C,那下面这三行都可以编译运行:
A a0 = new A();
A a1 = new B();
A a2 = new C();
-
System.out.println() 中,System是java.lang包下的一个类,out为该类下的final静态成员(PrintStream)类型,println()是PrintStream类的实例方法。
-
java中方法的重写的两同两小一大原则
方法名相同 &参数类型相同
子类方法返回类型 ≤ \leq ≤ 父类方法返回类型 & 子类方法抛出异常 ≤ \leq ≤父类方法抛出异常
子类访问权限 ≥ \geq ≥ 父类方法访问权限 -
编译将.java文件编译成字节码文件,在执行是,会将字节码文件解释为机器语言
-
访问权限从大到小 :public > protected > 包访问权限(默认权限) > private
-
多态
使用父类类型的引用指向子类的对象
该引用只能调用父类中定义的方法和变量
如果子类中重写了父类的一个方法,那么在调用这个方法的时候,将会调用子类的方法(动态连接,动态调用)
变量不能被重写/覆盖,重写的概念只针对方法,如果在子类中重写了父类中的变量那么编译时会报错
多态的三个必要条件:继承 & 重写 & 父类引用指向子类的对象
多态的绑定机制:
实例方法和引用变量所引用的对象的方法绑定;
静态方法与引用变量所声明的方法绑定;
成员变量(实例变量,静态变量)与引用对象所声明的类型的成员变量绑定。 -
Java类方法和实例方法
类方法是用static修饰的方法。
类方法属于整个类,所以类方法的方法体中不能有与类的对象有关的内容(不能引用对象变量 & 不能调用类的对象方法(实例方法) & 不能使用super,this关键字 & 不能被覆盖)。
System.out.println("1" + 2 + 3); // 123
System.out.println(1 + "2" + 3); // 123
System.out.println(1 + 2 + "3"); // 33
从左到右执行运算