zoukankan      html  css  js  c++  java
  • 接口和多态

    20145217 《Java程序设计》第4周学习总结(2)

    教材学习内容总结

    上章讲过继承,但继承不能乱用,悠闲先考虑接口而不是继承。本章即使对接口应用的论述,探讨如何改进和设计,了解继承、接口与多态的用于不用之处。

    7.1接口

    类要操作接口,必须使用implements关键字。一是操作接口中定义方法,二是再度将该方法标示为abstract。
    课本中用ocean.java的写法上让我们体会了继承和接口的区别。ocean.java用接口来写如下:

    • 1.Ocean.java

    package ocean;
    javascript
    public class Ocean {
    public static void main(String[] args) {
    doSwim(new Anemonefish("尼莫"));
    doSwim(new Shark("烂泥"));
    doSwim(new Humen("姬丝汀"));
    doSwim(new Submarine("黄色一号"));
    }
    static void doSwim(Swimmer swimmer){
    swimmer.swim();
    }
    }
    
    • 2.Swimmer.java

    package ocean;
    public interface Swimmer {
    public abstract void swim();
    }
    
    • 3.Submarine.java、Anemonefish.java、Humen.java和Shark.java(类似不一一给出)

    package ocean;
    public class Submarine implements Swimmer {
    private String name;
    public Submarine(String name){
        this.name=name;
    }
    public String getName(){
        return name;
    }
    @Override
    public void swim(){
        System.out.printf("潜水艇%s潜行%n", name);
    }
    }
    
    • 4.Fish.java

    package ocean;
    public abstract class Fish implements Swimmer {
    protected String name;
    public Fish(String name){
        this.name=name;
    }
    public String getName(){
        return name;
    }
    @Override
    public abstract void swim();
    }
    

    四部分打包后才会运行成功,运行结果如下:

    运用接口能够满足需求变化,子类不能有多个父类但是程序可以有多个接口,因此面对即可以飞又可以游泳的飞鱼可以更好地解决。

    6.2语法细节

    • 1.接口的默认为public abstract。

    • 2.在撰写java程序时,经常会有临时继承某个类或操作某个接口并建立实力的需要。由于这类子类或借口操作类只是用一次,不需要为这些类定义名称,这时可以使用匿名内部泪来解决。

    • 3.enum:定义枚举常数。

    上传git:

    教材学习中的问题和解决过程

    教材这部分是对程序设计逻辑化详解,需要多加练习,很多东西都是在敲完代码,运行程序成功后懂得的。

    代码调试中的问题和解决过程

    教材中的很多代码都是一半,真正实现需要自己补充好,在这方面也花掉了我大部分时间,但是总而言之很有收获。这俩节内容真心难,到现在也没学懂。现在学习还是比较迷茫的,只敲代码真的只能做到复制和读懂层面,并不能完全掌握,看来要自己解决一些问题才能真正掌握起来吧。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第三周 300/600 2/6 20/50
    第四周 300/900 2/8 16/66

    参考资料

  • 相关阅读:
    Spring Boot 2.4版本前后的分组配置变化及对多环境配置结构的影响
    Spring Boot 2.4 对多环境配置的支持更改
    Spring Boot 的2020最后一击:2.4.1、2.3.7、2.2.12 发布
    苹果M1芯片各种不支持,但居然可以刷朋友圈!你会买单吗?
    老板居然让我在Java项目中“造假”
    Spring Cloud正式移除Hystrix、Zuul等Netflix OSS组件
    为了Java微信支付V3开发包,我找出了微信支付文档至少六个错误
    IdentityServer4系列 | 支持数据持久化
    IdentityServer4系列 | 混合模式
    Gitlab Runner的分布式缓存实战
  • 原文地址:https://www.cnblogs.com/jokebright/p/5327214.html
Copyright © 2011-2022 走看看