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

  • 相关阅读:
    SVG PATH d参数的 ace
    如果你想动态创建一个iframe
    canvas构建一个平面直角坐标系
    JavaScript版几种常见排序算法
    【分享】 Stip,让表单验证轻松愉快。
    【分享】javascript合并混淆压缩
    【分享】页面提示插件更新
    nodejs 的 session 简单实现
    页面模块之间的通信依赖解决方案
    在平面旋转一个点
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786509.html
Copyright © 2020-2023  润新知