1. 第一题

    package net.mindview.polymorphism;
    //基类-自行车
    class Cycle{ } //子类-单轮车
    class Unicycle extends Cycle{ } //子类-双轮车
    class Bicycle extends Cycle{ } //子类-三轮车
    class Tricycle extends Cycle{ } public class CycleCompetition {
    public static void ride(Cycle cycle){ } public static void main(String[] args) {
    Bicycle b = new Bicycle();
    ride(b);
    }
    } 你
  2. (略)
  3. (略)
  4. 第四题
    package net.mindview.polymorphism;
    
    import java.util.Random;
    
    //形状
    class Shape{
    public void draw(){}
    public void erase(){}
    } //圆形
    class Cycle1 extends Shape { @Override
    public void draw() {
    System.out.println("draw cycle");
    } @Override
    public void erase() {
    System.out.println("erase cycle");
    } } class Square extends Shape {
    @Override
    public void draw() {
    System.out.println("draw Square");
    } @Override
    public void erase() {
    System.out.println("draw Square");
    }
    } //矩形
    class Triangle extends Shape {
    @Override
    public void draw() {
    System.out.println("draw Triangle");
    } @Override
    public void erase() {
    System.out.println("draw Triangle");
    }
    } //梯形
    class Trapezoid extends Shape {
    @Override
    public void draw() {
    System.out.println("draw Trapezoid");
    } @Override
    public void erase() {
    System.out.println("draw Trapezoid");
    }
    } class RandomShapeFactory {
    Random random = new Random(); //下面画什么形状呢
    public Shape next(){
    switch(random.nextInt()) {
    default:
    case : return new Cycle1();
    case : return new Square();
    case : return new Triangle();
    case : return new Trapezoid();
    }
    }
    } public class Shapes {
    public static void main(String[] args) {
    Shape[] shape = new Shape[];
    RandomShapeFactory factory = new RandomShapeFactory();
    for(int i=; i<shape.length; i++){
    shape[i] = factory.next();
    shape[i].draw();
    } } }
  5. 第五题
    package net.mindview.polymorphism;
    //基类-自行车
    class Cycle{
    public int wheels(){
    return ;
    }
    } //子类-单轮车
    class Unicycle extends Cycle{
    public int wheels(){
    return ;
    }
    } //子类-双轮车
    class Bicycle extends Cycle{
    public int wheels(){
    return ;
    }
    } //子类-三轮车
    class Tricycle extends Cycle{
    public int wheels(){
    return ;
    }
    } public class CycleCompetition {
    public static void ride(Cycle cycle){
    System.out.println(cycle.wheels());
    } public static void main(String[] args) {
    Bicycle b = new Bicycle();
    ride(b);
    }
    }
  6. 第六题
    package net.mindview.polymorphism.Music3;
    
    import net.mindview.polymorphism.Note;
    
    class Instrument {
    public void play(Note i){
    System.out.println("Instrument.play() ");
    } public String toString () {
    return Instrument.class.getName();
    } void adjust(){System.out.println("adjust Instrument");} } class Wind extends Instrument {
    @Override
    public void play(Note i) {
    System.out.println("Wind.play() ");
    } String what (){ return "Wind"; } void adjust(){System.out.println("adjust Wind");}
    } class Stringed extends Instrument {
    @Override
    public void play(Note i) {
    System.out.println("Stringed.play() ");
    } String what (){ return "Stringed"; } void adjust(){System.out.println("adjust Stringed");}
    } class Brass extends Instrument {
    @Override
    public void play(Note i) {
    System.out.println("Brass.play() ");
    } String what (){ return "Brass"; } void adjust(){System.out.println("adjust Brass");}
    } public class Music3 {
    //曲调
    public static void tune(Instrument i){
    i.play(Note.MIDDLE_C);
    } public static void tuneAll(Instrument[] i){
    for(Instrument ins: i){
    tune(ins);
    }
    } public static void main(String[] args) {
    Instrument[] i = {
    new Wind(),
    new Stringed(),
    new Brass()
    };
    tuneAll(i); Instrument t = new Instrument();
    System.out.println(t);
    } }
  7. 第七题
    package net.mindview.polymorphism.Music3;
    
    import net.mindview.polymorphism.Note;
    
    class Instrument {
    public void play(Note i){
    System.out.println("Instrument.play() ");
    } public String toString () {
    return Instrument.class.getName();
    } void adjust(){System.out.println("adjust Instrument");} } class Wind extends Instrument {
    @Override
    public void play(Note i) {
    System.out.println("Wind.play() ");
    } String what (){ return "Wind"; } void adjust(){System.out.println("adjust Wind");}
    } class Stringed extends Instrument {
    @Override
    public void play(Note i) {
    System.out.println("Stringed.play() ");
    } String what (){ return "Stringed"; } void adjust(){System.out.println("adjust Stringed");}
    } class Brass extends Instrument {
    @Override
    public void play(Note i) {
    System.out.println("Brass.play() ");
    } String what (){ return "Brass"; } void adjust(){System.out.println("adjust Brass");}
    } class Other extends Instrument {
    @Override
    public void play(Note i) {
    System.out.println("Other.play() ");
    } String what (){ return "Other"; } void adjust(){System.out.println("adjust Other");}
    } public class Music3 {
    //曲调
    public static void tune(Instrument i){
    i.play(Note.MIDDLE_C);
    } public static void tuneAll(Instrument[] i){
    for(Instrument ins: i){
    tune(ins);
    }
    } public static void main(String[] args) {
    Instrument[] i = {
    new Wind(),
    new Stringed(),
    new Brass(),
    new Other()
    };
    tuneAll(i); Instrument t = new Instrument();
    System.out.println(t);
    } }
  8. 第八题
    package net.mindview.polymorphism.Music3;
    
    import java.util.Random;
    
    import net.mindview.polymorphism.Note;
    
    class Instrument {
    public void play(Note i){
    System.out.println("Instrument.play() ");
    } public String toString () {
    return Instrument.class.getName();
    } void adjust(){System.out.println("adjust Instrument");} } class Wind extends Instrument {
    @Override
    public void play(Note i) {
    System.out.println("Wind.play() ");
    } String what (){ return "Wind"; } void adjust(){System.out.println("adjust Wind");}
    } class Stringed extends Instrument {
    @Override
    public void play(Note i) {
    System.out.println("Stringed.play() ");
    } String what (){ return "Stringed"; } void adjust(){System.out.println("adjust Stringed");}
    } class Brass extends Instrument {
    @Override
    public void play(Note i) {
    System.out.println("Brass.play() ");
    } String what (){ return "Brass"; } void adjust(){System.out.println("adjust Brass");}
    } class Other extends Instrument {
    @Override
    public void play(Note i) {
    System.out.println("Other.play() ");
    } String what (){ return "Other"; } void adjust(){System.out.println("adjust Other");}
    } class RandomInstrumentFactory {
    Random rand = new Random();
    public Instrument next(){
    switch(rand.nextInt()){
    default:
    case : return new Wind();
    case : return new Stringed();
    case : return new Brass();
    case : return new Other();
    }
    }
    } public class Music3 {
    //曲调
    public static void tune(Instrument i){
    i.play(Note.MIDDLE_C);
    } public static void tuneAll(Instrument[] i){
    for(Instrument ins: i){
    tune(ins);
    }
    } public static void main(String[] args) {
    RandomInstrumentFactory factory = new RandomInstrumentFactory();
    Instrument[] instruments = new Instrument[];
    for(int i=; i<instruments.length; i++){
    instruments[i] = factory.next();
    }
    tuneAll(instruments); Instrument t = new Instrument();
    System.out.println(t);
    } }
  9. 第九题
    package net.mindview.polymorphism;
    
    //啮(nie四声)齿动物
    class Rodent{
    void say(){System.out.println("hi,我是 Rodent");}
    } //老鼠
    class Mouse extends Rodent{
    void say(){System.out.println("hi,我是 Mouse");}
    } //鼹鼠
    class Gerbil extends Rodent{
    void say(){System.out.println("hi,我是 Gerbil");}
    } //大颊鼠
    class Hamster extends Rodent{
    void say(){System.out.println("hi,我是 Hamster");}
    } //啮(nie四声)齿动物大家族
    public class RodentHome {
    public static void instroduce(Rodent rodent){
    rodent.say();
    } public static void instroduceAll(Rodent[] rodents){
    for(Rodent r: rodents){
    instroduce(r);
    }
    } public static void main(String[] args) {
    Rodent[] rodents = {
    new Mouse(),
    new Gerbil(),
    new Hamster()
    };
    instroduceAll(rodents);
    }
    }
  10. 第十题
    package net.mindview.polymorphism;
    
    class Base{
    public void method1(){
    System.out.println("method1");
    method2();
    } public void method2(){
    System.out.println("Base method2");
    }
    } class Child extends Base{
    @Override
    public void method2() {
    System.out.println("Child method2");
    }
    } public class Test10 { public static void up(Base b){
    b.method1();
    } public static void main(String[] args) {
    Child c = new Child();
    up(c); }
    }
  11. afd
  12. adf
  13. 第十三题
    package net.mindview.polymorphism;
    import static net.mindview.util.Print.*;
    //这是一个共享类
    class Shared {
    private int refCount = ;
    private static long counter = ;
    private final long id = counter++; public Shared(){
    println("Creating "+this);
    } public void addRef(){
    refCount ++;
    } protected void dispose(){
    if(--refCount ==){
    println("Disposing " + this);
    }
    } @Override
    public String toString() {
    return "Shared " + id;
    } @Override
    protected void finalize() throws Throwable {
    if(refCount != ){
    println("Error, 引用计数不为0");
    }
    super.finalize();
    }
    } //组成类
    class Composing{
    private Shared shared;
    private static long counter = ;
    private final long id = counter ++; public Composing(Shared shared){
    println("Creating "+ this);
    this.shared = shared;
    shared.addRef();
    } protected void dispose() {
    println("dispose " + this);
    shared.dispose();
    }
    @Override
    public String toString() {
    return "Composing " + id;
    } } //引用计数
    public class ReferenceCounting { public static void main(String[] args) {
    // TODO Auto-generated method stub
    Shared shared = new Shared();
    Composing[] composing = {
    new Composing(shared),
    new Composing(shared),
    new Composing(shared),
    new Composing(shared),
    new Composing(shared),
    new Composing(shared)
    };
    for(Composing c:composing){
    c.dispose();
    }
    }
    }
  14. fa
  15. dfa
  16. 第十六题
    package net.mindview.polymorphism;
    
    class AlertStatus {
    @Override
    public String toString() {
    return "AlertStatus";
    }
    } class StartStatus extends AlertStatus {
    @Override
    public String toString() {
    return "StartStatus";
    }
    } class EndStatus extends AlertStatus {
    @Override
    public String toString() {
    return "EndStatus";
    }
    } class PauseStatus extends AlertStatus {
    @Override
    public String toString() {
    return "PauseStatus";
    }
    } class Music4 {
    AlertStatus as = new StartStatus(); public void pause(){
    as = new PauseStatus();
    } public void end(){
    as = new EndStatus();
    } public void currentStatus(){
    System.out.println(as);
    }
    } public class Starship { public static void main(String[] args) {
    Music4 m = new Music4();
    m.currentStatus();
    m.pause();
    m.currentStatus();
    m.end();
    m.currentStatus();
    }
    }
  17. 第十七题
    package net.mindview.polymorphism;
    //基类-自行车
    class Cycle{
    public int wheels(){
    return ;
    }
    } //子类-单轮车
    class Unicycle extends Cycle{
    public int wheels(){
    return ;
    } public void balance(){
    System.out.println("Unicycle balance");
    }
    } //子类-双轮车
    class Bicycle extends Cycle{
    public int wheels(){
    return ;
    }
    public void balance(){
    System.out.println("Bicycle balance");
    }
    } //子类-三轮车
    class Tricycle extends Cycle{
    public int wheels(){
    return ;
    }
    } public class CycleCompetition {
    public static void ride(Cycle cycle){
    System.out.println(cycle.wheels());
    } public static void main(String[] args) {
    Cycle[] cycle = {
    new Cycle(),
    new Unicycle(),
    new Bicycle(),
    new Tricycle()
    };
    //((Cycle)cycle[0]).balance();//编译不通过
    ((Unicycle)cycle[]).balance();
    ((Bicycle)cycle[]).balance();
    }
    }

java编程思想第四版第八章习题的更多相关文章

  1. java编程思想第四版第八章总结

    1. 多态的含义 面向对象的三大基本特征: 封装,继承,多态. 多态是干什么的? 多态将做什么和怎么做分离开.从另一个角度将接口是实现类分离开. 多态的作用 消除类型之间耦合的关系 使用多态的好处? ...

  2. java编程思想第四版第九章习题

    第三题 package net.mindview.interfaces; abstract class Base{ public Base(){ print(); } abstract void pr ...

  3. java编程思想第四版第十章习题

    第一题 package net.mindview.innerclasses; public class Outer { class Inner { Inner(){ System.out.printl ...

  4. java编程思想第四版中net.mindview.util包下载,及源码简单导入使用

    在java编程思想第四版中需要使用net.mindview.util包,大家可以直接到http://www.mindviewinc.com/TIJ4/CodeInstructions.html 去下载 ...

  5. 《Java编程思想第四版》附录 B 对比 C++和 Java

    <Java编程思想第四版完整中文高清版.pdf>-笔记 附录 B 对比 C++和 Java “作为一名 C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且 Java 的语法无疑是 ...

  6. Java编程思想第四版勘误

    坊间传说这本书翻译得很烂,我倒觉得还好.虽然看原文更准确,但是如果在具备一定编程思维和基础.能够看出来疑问的情况下,还是看中文更快一些,而且这本书本身也不适合初学者看.当然,错误和不通顺还是有的,而且 ...

  7. Java编程思想第四版完整中文高清版.pdf

    Java编程思想第四版完整中文高清版.pdf 链接: https://pan.baidu.com/s/1vV5BHF3L-bnaG6WGurdJ_A 提取码: vigy 复制这段内容后打开百度网盘手机 ...

  8. 《Java编程思想第四版完整中文高清版.pdf》-笔记

    D.2.1 安插自己的测试代码 插入下述“显式”计时代码,对程序进行评测: long start = System.currentTimeMillis(); // 要计时的运算代码放在这儿 long ...

  9. 《Java编程思想第四版》附录 C Java 编程规则

    附录 C Java 编程规则 本附录包含了大量有用的建议,帮助大家进行低级程序设计,并提供了代码编写的一般性指导: (1) 类名首字母应该大写.字段.方法以及对象(句柄)的首字母应小写.对于所有标识符 ...

随机推荐

  1. Django RESRframework奇淫技巧

    Django RESRframework Mixins, ViewSet和router配合使用 Mixins的类共有五种 CreateModelMixin ListModelMixin Retriev ...

  2. url中常见符号说明

    如:http://10.1.1.71:9999/auditcenter/api/v1/auditPlanList?pageSize=20&page=1 ?:分隔实际的url和参数 & ...

  3. 【教程】基于Ubuntu系统的PyTorch虚拟环境配置

    目录 一.PyTorch虚拟环境配置 二.PyTorch虚拟环境使用 三.常用命令 Editor: Veagau Time: 2019/10/17 一.PyTorch虚拟环境配置 该部分操作均在终端( ...

  4. 学习笔记:flutter项目搭建(mac版)

    什么是flutter Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面. Flutter可以与现有的代码一起工作.在全世界,Flutter正在被越来越多的 ...

  5. [解决]Hadoop 2.4.1 UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0

    问题:UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0 我的系统 win7 64位 Hadoop ...

  6. SpringBoot整合MybatisPlus3.X之自定义Mapper(十)

    pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId& ...

  7. 设计模式C++描述----04.观察者(Observer)模式

    一. 概述 Observer 模式要解决的问题为:建立一个一(Subject)对多(Observer)的依赖关系,并且做到当“一”变化的时候,依赖这个“一”的多也能够同步改变. Sbuject 相当于 ...

  8. Linux Capabilities 入门教程:基础实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 待续... 上篇文章介绍了 Linux capabilit ...

  9. 搭建邮件服务器,使用Postfix与Dovecot收发电子邮件

    小知识: 我们为什么要搭建邮件服务器呢?有时候我们处于一个局域网内,不能及时的分享各自的研究成果,迫切的需要一种能够借助于网络且建立在计算机之间的传输数据的方法.所以我们需要搭建邮件服务器,这样的话既 ...

  10. Centos6 Tengine开启http2传输协议

    1.前言 最近在优化网站的访问速度,为网站开启http2协议,这个协议有什么优点呢?如下: http2是下一代的传输协议,以后都会普遍用它,是一个趋势. http2有多路复用特性,意思是访问一个域名下 ...