一、继承条件下的构造方法调用

 class Grandparent {

     public Grandparent() {
System.out.println("GrandParent Created.");
} public Grandparent(String string) {
System.out.println("GrandParent Created.String:" + string);
}
} class Parent extends Grandparent { public Parent() {
//super("Hello.Grandparent.");
System.out.println("Parent Created");
// super("Hello.Grandparent.");
}
} class Child extends Parent { public Child() {
System.out.println("Child Created");
}
} public class TestInherits { @SuppressWarnings("unused")
public static void main(String args[]) {
Child c = new Child();
}
}

  

  通过 super 调用基类构造方法,必须是子类构造方法中的第一个语句。

二、方法覆盖

 public class Fruit
{ public String toString()
{
return "Fruit toString.";
} public static void main(String args[])
{
Fruit f=new Fruit();
System.out.println("f="+f);
// System.out.println("f="+f.toString());
}
}

  

  

  Fruit类覆盖了Object类的toString方法。在“+”运算中,当任何一个对象与一个String对象,连接时,会隐式地调用其toString()方法,默认情况下,此方法返回“类名 @ +   hashCode”。为了返回有意义的信息,子类可以重写toString()方法。方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)!

  Java“方法覆盖”的语法规则:

  (1)覆盖方法的允许访问范围不能小于原方法。

  (2)覆盖方法所抛出的异常不能比原方法更多。

  (3)声明为final方法不允许覆盖。 例如,Object的getClass()方法不能覆盖。

  (4)不能覆盖静态方法。

三、道至简第六章发表阅读笔记

  第六章引用了《列子》的一句话“得其精而忘其粗,在其内而忘其外;见其所见,不见其所不见,视其所视,而遗其所不视。”这句话的意思是:得到它的精髓却忘记了它的粗,在它内部却忘记了它的外部;只能看到能见到的东西,而不能看到那些看不到的东西。要知道程序语言对于一个编程人员而言仅仅是一个工具、一个媒介。作为IT项目开发的人员,看清楚大的程序只是项目的开始而已。

按照人类的发展史来看,猿人与人类的关键差别在于,是否学会制作和使用工具。而编程人员也常常被称为程序猿,我觉得也有可能是因为我们队工具的盲目。

我们目前所学过C++,JAVA与其说是技术课程,还不如说是语言。这几门语言,就是用于和计算机对话的。而我感觉我们是用学英语的方法来学习程序语言的。我们太专注遇语言工具的的学习了。对于其他专业知识反而造成了忽视。作者在第一章中曾经说过:成天讨论这门语言好,或者那门语言坏的人,甚至是可悲的。语言仅仅是一个工具,一个我们用来实现工程的工具。

在本章的第二节中,作者提出了程序的本源定义“程序=算法+结构”,这也是原始的状态。任何与编程相关的工作,都是以此为本源中心。就像英语单词都是由26个字母组成的。所以所有的程序代码都是由“程序=算法+结构”得来的。即使面对复杂的程序,我们也应该抽丝剥茧地理清思路,这样就很容易看懂程序了。

随着事情的发展,根据前人的实践和总结,过程、对象和方法都出现了。方法和方法论是用于推动程序向前发展的。要知道的是方法不是实物,不能被看到,只有拥有足够的编程经验才能理解。并且理解过程需要编程经验,理解对象也需要编程经验,也就是说我们需要的是熟能生巧。过程是伴随着工程而出现的,过程就是角色、沟通和环节,解决的是角色间的关系问题。

最狭义的工程,是“做什么”和“做到什么”。也就是说,把我们要实现的目标通过语言、方法、工具实现出来的就是工程。工程需要方法和过程来达成。对于大的工程而言,团队极为重要。一个人是很难高效率地完成大工程的。在现今社会中,如果没有团队意识,那么就会一触而溃。

在团队中,组织是很重要的。这个组织无关于技术,而重点放在人力资源、项目资金和项目组的协同等方面。工程理论其实就囊括了组织学。当工程关注的只是需求、配置和文档等要素,那么这样的过程是肤浅的技术层面。所以我们应该关注的还是实现工程的细节,而非目标。这些应该是项目经理和技术经理所共同关注的一部分。

实现是开发项目的本质性需求。为了去实现项目,我们需要不断积累和时间来总结和归纳方法。由于“实现”的需要,我们有了团队组织、有了模型、有了语言工具。

Java 接口与继承 道至简第六章发表阅读笔记的更多相关文章

  1. java接口可以继承多个接口

    接口是常量值和方法定义的集合.接口是一种特殊的抽象类.   java类是单继承的.classB Extends classA java接口可以多继承.Interface3 Extends Interf ...

  2. Java 接口多继承

    按照理解,一般都是说Java 类是单继承,但可以实现多个接口.但是可以通过接口来实现类的多继承.(如何通过接口来实现多继承???) 那么就一直以为Java里面是单继承,今天看FutureTask源码的 ...

  3. JAVA接口的继承与集合

    复习 20190701 接口补充 一. java是单继承多实现 单继承: 一个类只能有一个父类 public class D extends D1 { } 2. 多实现 一个类可以同时实现多个接口 当 ...

  4. java 接口与继承

    一.继承条件下的构造方法调用 运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构 ...

  5. JAVA 接口与继承作业——动手动脑以及课后实验性问题

    一.继承条件下的构造方法调用 运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构 ...

  6. Java接口与继承作业

    为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来? 因为子类继承了父类,那么就默认的含有父类的公共成员方法和公共成员变量,这些方法和变量在子类里不再重复声明.如果 ...

  7. java接口与继承

    class Grandparent { public Grandparent() { System.out.println("GrandParent Created."); } p ...

  8. Java伪代码描述《大道至简》第一章

    第一节 Begin //原始需求 惩山北之塞,出入之迂 //项目沟通的基本方式 聚室而谋曰 //项目目标 毕力平险,指通豫南,达于汉阴 //技术方案 扣石垦壤,箕畚运于渤海之尾 //技术人员和工程管理 ...

  9. Java并发编程的艺术(一、二章) ——学习笔记

    第一章  并发编程的挑战 需要了解的一些概念 转自 https://blog.csdn.net/TzBugs/article/details/80921351 (1) 同步VS异步 同步和异步通常用来 ...

随机推荐

  1. Server responded "Algorithm negotiation failed" SSH Secure链接服务器错误

    Ubuntu 16.04安装openssh-server后,使用ssh客户端连接时可能报此错误,情况如下图所示: server responded "algorithm negotiatio ...

  2. Android测试读写sd卡文件与写sd卡文件耗时

    测试从sd卡读1k大小的文件,再写1k大小的文件,由于处理耗时很短,所以循环500次,查看耗时:测试写1k大小的文件,直接在内存构造一个1k的buffer,将这个buffer直接写到文件,同样循环50 ...

  3. Redis分布式锁的python实现

    案例1: #!/usr/bin/env python # coding=utf-8 import time import redis class RedisLock(object): def __in ...

  4. python基础27 -----python进程终结篇-----IO模型

    一.IO模型 1.IO模型分类 1.阻塞IO--------blocking IO 2.非阻塞IO------nonblocking IO 3. 多路复用IO------- multiplexing ...

  5. 利用FFmpeg将RTSP转码成RTMP发布在RED5

    安装jdk,并设置环境  from:http://www.w3c.com.cn/%E5%88%A9%E7%94%A8ffmpeg%E5%B0%86-ipcamera-%E7%9A%84rtsp%E8% ...

  6. 纯HTML标签详解(摘自阿里西西)

    HTML标签很多,可是实际上常用的却就那么十几二十个,很多标签的功能渐渐的被大家忽略了.然后,如果在适当的时候,用一用,还是能在一定程序上给我们的页面设计带来一点小小的方便的.下面这些HTML标签基本 ...

  7. 【leetcode刷题笔记】Regular Expression Matching

    Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...

  8. iOS_KVC与KVO

    目 录: 一.KVC   二.KVO                                                                                   ...

  9. Centos7 关闭Ipv6

  10. Bootstrap3全局CSS样式

    目录 1. 概览 2. 栅栏系统 3. 文本 4. 列表 5. 代码 6. 表格 7. 表单 7.1 基本实例 7.2 内联表单 7.3 水平排列的表单 8. 按钮 9. 图片 10. 辅助类 10. ...