(1), super 关键字
super 调用父类指定构造方法的操作,与 this 调用构造方法的要求一样,语句必须放在子类构造方法的首行。
(2), 继承的应用 / 覆写 / final 关键字
(3), 抽象类, 包含抽象方法的类必须是抽象类,抽象方法只需要声明,不需要实现。抽象方法,不能是 private,因为子类没法覆写。
(4), 接口 : 是由全局常量 和 公共public的抽象方法组成。
(5), instanceof 关键字 : 对象 instanceof 类 --> 返回 boolean 类型
(6), Object - Object - toString, equals, hashCode()
(7), 包装类 一切皆对象 , Number,{Integer, Short, Long, Float, Byte, Double } Object { Character, Boolean }
(8), 自动 装箱 与 拆箱
Integer i = 30; ...
包装类的应用 Integer, public static int parseInt(String s) throws NumberFormatException
匿名内部类
this.fun2(new A() {
public void pf() {
System.out.println("Hello World");
}
});
知识点 :
1), this() 与 super() 无法同时存在于同一个构造方法之中。
2), 如果父类的方法不希望被子类覆写,可在父类的方法前加上 final 关键字,这样该方法便不会被覆写。3), 一个好的类应该 覆写 toString(), equals(), hashCode() 3 个方法
继承抽象类
package com.qunar.basicJava.javase.p6OO;
/**
* Author: libin.chen@qunar.com Date: 14-5-19 14:36
*/
abstract class A {
public static final String FLAG = "CHINA";
private String name = "LiXingHua";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void show();
}
class B extends A {
B() {
super();
System.out.println("B 类 中的构造方法");
}
@Override
public void show() {
System.out.println("FLAG : " + FLAG);
System.out.println("姓名 : " + super.getName());
}
}
public class AbstractDemo02 {
public static void main(String[] args) {
B b = new B();
b.show();
}
}
接口的继承与实现接口package com.qunar.basicJava.javase.p6OO;
/**
* Author: libin.chen@qunar.com Date: 14-5-19 14:45
*/
interface A {
public String AUTHOR = "李兴花";
public void printA();
}
interface B {
public void printB();
}
interface C extends A, B {
public void printC();
}
class X implements C {
@Override
public void printC() {
System.out.println("I'm C!");
}
@Override
public void printA() {
System.out.println("I 'm A!");
}
@Override
public void printB() {
System.out.println("I'm B!");
}
public void show() {
this.printA();
this.printB();
this.printC();
}
}
public class InterfaceDemo06 {
public static void main(String[] args) {
X x = new X();
x.show();
}
}