[Java 06 OO] (高级篇) 《Java开发实战经典》
p6OO 第六章 面向对象 (高级篇)
(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");
}
});
3), 一个好的类应该 覆写 toString(), equals(), hashCode() 3 个方法
(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(); } }