第7章 复用类

作者: 胡笠 | 来源:发表于2019-04-08 21:02 被阅读0次

7.2继承

总结 当创建一个子类对象时,该对象包含了父类当子对象,这个子对象和直接使用基类创建对象是一样当,二者区别是后者来自外部,而基类的子对象被包装在子类的对象内部(会先调用父类的构造函数)
总结 类加载顺序
Java代码中一个类初始化顺序:static变量 -- 其他成员变量 -- 构造函数 三者的调用先后顺序:
初始化父类Static --> 子类的Static (如果是类实例化,接下来还会: 初始化父类的其他成员变量->父类构造方法->子类其他成员变量->子类的构造方法)。
系统默认值的给予比通过等号的赋予先执行。
一个类中的static变量或成员变量的初始化顺序,是按照声明的顺序初始化的。

7.2.1初始化基类

父类Art

package main.chapter7;

/**
 * 父类
 *
 * @author
 * @create 2019-04-08 下午8:53
 **/
public class Art {
    public Art(String s) {
        System.out.println("art constructor");
    }
}

Drawing继承Art

package main.chapter7;

/**
 * extends art
 *
 * @author
 * @create 2019-04-08 下午8:53
 **/
public class Drawing extends Art {
    public Drawing() {
        super("234");
        System.out.println("drawing constructor");
    }
}

Cartoon继承Drawing

package main.chapter7;

/**
 * extends drawing
 *
 * @author
 * @create 2019-04-08 下午8:54
 **/
public class Cartoon extends Drawing{
    public Cartoon() {
        System.out.println("drawing constructor");
    }

    public static void main(String[] args){
        new Cartoon();
    }
}

注意:默认是会调用父类的无参构造函数的,所以需要显式的使用super构造函数打通调用链

7.3代理

package main.chapter7;

/**
 * 方向盘
 *
 * @author
 * @create 2019-04-08 下午9:13
 **/
public class SpaceShipController {
    void up(int velocity){}
    void down(int velocity){}
    void right(int velocity){}
    void left(int velocity){}
    
}

代理类:

package main.chapter7;

/**
 * 代理类
 *
 * @author
 * @create 2019-04-08 下午9:15
 **/
public class SpaceShipDelegation {
    private SpaceShipController spaceShipController = new SpaceShipController();

    public void up(int velocity) {
        spaceShipController.up(velocity);
    }

    public void down(int velocity) {
        spaceShipController.down(velocity);
    }

    public void right(int velocity) {
        spaceShipController.right(velocity);
    }

    public void left(int velocity) {
        spaceShipController.left(velocity);
    }
}

注意:idea里面command+N可以选择创建代理方法,很方便

image.png

相关文章

  • 第7章 复用类

    7.2继承 总结 当创建一个子类对象时,该对象包含了父类当子对象,这个子对象和直接使用基类创建对象是一样当,二者区...

  • 复用类

    类复用方式 组合 继承 代理

  • 【PHP 核心技术与最佳实践】

    面向对象的优势在于类的复用。 继承与多态都是对类进行复用,它们一个是类级别的复用,一个是方法级别的复用。 在创建组...

  • 第五章 复用类

    复用类 复用类有两种方式:①组合 ②继承 组合:在新的类中产生原有类的对象 继承:根据现有类的类型来创建新类,采用...

  • 类的复用

    1.java代码的复用方式 继承初始化基类导出类对象包含一个基类的子对象,因此导出类初始化之前,编译器首先调用基类...

  • 【Java】复用类

    复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言,仅仅能够复制代码并对之改变是不够的,它还必须...

  • 7、复用类

    复用类的方法:1、在新的类中产生现有类的对象,所以新的类由现有类的对象组成,这种方法为组合2、按照现有类的类型来创...

  • 小说复用类

    前言 第一次尝试写技术文章,前期可能主要是一些总结类的。后期才会慢慢加入自己的理解吧。主要内容来自于 Thinki...

  • 2018-04-20

    第7章:复用类 组合:将对象引用置于新类中 继承: 代理:将成员对象置于所要构造的类中,在新类中暴露该成员对象的所...

  • Java编程思想学习笔记(7)

    Java编程思想学习笔记(7) 复用类 复用代码是Java的功能之一。 Java中对代码的复用是围绕着类展开的,可...

网友评论

    本文标题:第7章 复用类

    本文链接:https://www.haomeiwen.com/subject/wthmiqtx.html