[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");
         }
      });

  知识点  :  

           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();
    }
}

原文地址:https://www.cnblogs.com/robbychan/p/3786509.html