博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口和多态
阅读量:5242 次
发布时间:2019-06-14

本文共 1688 字,大约阅读时间需要 5 分钟。

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

教材学习内容总结

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

7.1接口

类要操作接口,必须使用implements关键字。一是操作接口中定义方法,二是再度将该方法标示为abstract。

课本中用ocean.java的写法上让我们体会了继承和接口的区别。ocean.java用接口来写如下:

  • 1.Ocean.java

package ocean;javascriptpublic 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;}@Overridepublic 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;}@Overridepublic abstract void swim();}

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

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

6.2语法细节

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

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

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

上传git:

886760-20160327224349526-879335983.jpg

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

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

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

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

学习进度条

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

参考资料

转载于:https://www.cnblogs.com/jokebright/p/5327214.html

你可能感兴趣的文章
图论-次短路求法
查看>>
What's New for Visual C# 6.0
查看>>
ExtJs学习笔记之ComboBox组件
查看>>
关于收费软件
查看>>
getopt_long
查看>>
TensorFlow MNIST CNN 代码
查看>>
javascript之Style物
查看>>
JSON跨域解决方案收集
查看>>
SSH框架整合总结
查看>>
图的深度优先遍历
查看>>
C# 之 提高WebService性能大数据量网络传输处理
查看>>
md5sum命令详解
查看>>
[bzoj1004] [HNOI2008] Cards
查看>>
原生HttpClient详细使用示例
查看>>
几道面试题
查看>>
Factory Design Pattern
查看>>
python中贪婪与非贪婪
查看>>
guava API整理
查看>>
无锁编程笔记
查看>>
jquery mobile
查看>>