第五章(继承)

原创 2013年12月05日 23:26:45

1.有些人认为super与this引用是类似的概念,实际上,这样比较并不太恰当。这是因为super不是一个对象的引用,不能将super赋给另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字。(p145)

2.如果子类的构造器没有显示地调用超类的构造器,则将自动地调用超类默认(没有参数)的构造器。如果超类没有不带参数的构造器,并且在子类的构造器中又没有显示地调用超类的其他构造器,则Java编译器将报告错误。 (p146)

父类

public class Person {
	private String name;
	private int age;

	public Person getBody(){
		return null;
	}
	
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
}
子类
/**
 * 如果子类的构造器没有显示地调用超类的构造器,则将自动地调用超类默认(没有参数)的构造器。
 * 如果超类没有不带参数的构造器,并且在子类的构造器中又没有显示地调用超类的其他构造器,则Java编译器将报告错误。 
 */
public class Student extends Person{

	public Student(String name, int age) {
		super(name, age);//如果这句话不写,则编译器报错
	}
}
3.一个对象变量(例如,变量e)可以引用多种实际类型的现象被称为多态。在运行时能够自动地选择调用哪个方法的现象称为动态绑定。(p147)

4.由一个公共超类派生出来的所有类的集合被称为继承层次,如下如所示。在继承层次中,从某个特定的类到其祖先的路径被称为该类的继承链。(p149)

5.(p151)

父类:

public class Person {
	public Person getBody(){
		return null;
	}
}
子类:

public class Student extends Person{
	/**
	 * 在覆盖方法时,一定要保证返回类型的兼容性。
	 * 在Java SE5.0以前的版本中,要求返回类型必须是一样的,
	 * 现在允许子类将覆盖方法的返回类型定义为原返回类型的子类型。
	 * 
	 * 
	 * 也就是说这个方法的返回类型可以是Person,也可以是Person的子类型
	 */
	public Student getBody(){
		return null;
	}
	
}
6.在覆盖一个方法的时候,子类方法不能低于超类方法的可见性。特别是,如果超类方法是public,子类方法一定要声明为public。经常会发生这类错误:在声明子类方法的时候,遗漏了public修饰符。此时,编译器将会把它解释为试图降低访问权限。(p152)

7.在将超类转换成子类之前,应该使用instanceof进行检查。如果被检查的类是null,则返回false,而不是异常。在一般情况下,应该尽量少用类型转换和instanceof运算符(p155)

版权声明:本文为博主原创文章,未经博主允许不得转载。

【codejava】第八版:第十四章 多线程[001] [20180105]

14.1 线程的概念     读者可能已经很熟悉操作系统中的多任务(multitasking):在同一刻运行多个程序的能力。例如,在编辑或下载邮件的同时可以打印文件。今天,人们很可能有单台拥有多个CP...
  • bas_ball
  • bas_ball
  • 2018年01月05日 22:04
  • 6

详细解释《机器学习实战》第5章logistic回归 第5-1程序

首先贴出程序5-1代码如下:
  • roler_
  • roler_
  • 2014年12月09日 15:08
  • 982

Csapp读书笔记:第五章

(1)(1)安全优化,编译器在进行优化的时候必须考虑所有的情况,只执行安全的优化。所以可能会限制很多可能的优化策略。如果写出上面这样的代码,当xp==yp的时候,最后的结果等于0。否则xp和yp指向的...
  • pp634077956
  • pp634077956
  • 2016年10月25日 14:09
  • 2107

深入理解计算机系统第五章学习-性能优化 3

5.8分支预测 现在的处理都支持分支预测功能,在执行分支预测时候,在执行判断语句之前,处理器已经执行了判断后的语言,如果判断正确,就会直接把处理结果给执行单元,否则就会接受分支预测失败惩罚,如果预测比...
  • fengjingge
  • fengjingge
  • 2014年12月05日 20:36
  • 605

Spring实战(第4版) Spring Inaction 笔记(第五章)Spring MVC

web app 与application的区别就在于pom.xml中的一行  packaging>warpackaging> 传统WebApp一切开始于web.xml, web.xml 的配置请看ht...
  • makefriend7
  • makefriend7
  • 2016年11月30日 10:15
  • 505

java核心技术 第五章 继承

7.反射能够分析类的能力为反射(reflective).7.1 Class类在程序运行期间,java运行时系统始终为所有的对象维护一个被称为运行时的类型标识,这个信息保存着每个对象所属的类足迹。虚拟机...
  • u012417380
  • u012417380
  • 2016年10月19日 15:14
  • 146

第五章——接口与继承

这段时间一鼓作气学习了 Java 接口与继承这一块以及与之相关的部分散乱的内容,现在来做个总结接口Java 语言的接口Java 程序语言中,接口与类相似,是一个引用类型,只包含变量、方法签名和嵌套类型...
  • GiantDrawf
  • GiantDrawf
  • 2016年12月15日 22:35
  • 174

apue学习第九天——标准I/O库(第五章)

这是第五章标准I/O库的内容,花了几个小时浏览了一遍。感觉这些东西在第一遍看的时候没必要太抠细节,用到的时候再查,所以下面只是简单记录,好啦,开始。 首先,给stream一个系统的定义:In...
  • BlitzSkies
  • BlitzSkies
  • 2015年01月05日 20:28
  • 723

第五章 类和继承

前面章节中的模块都不是以面向对象形式写的,但是在Closure中许多模块是,尽管JavaScript支持基于原型编程,Closure库以原型来实现类的编程。为了管理内存,用传统的复制对象来创建对象。 ...
  • i7thTool
  • i7thTool
  • 2016年11月30日 13:38
  • 149

C++第五章 习题

P162    5.18:编辑一个学生和教师数据输入和显示程序,学生数据要编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操...
  • anneghost
  • anneghost
  • 2015年06月28日 19:55
  • 138
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第五章(继承)
举报原因:
原因补充:

(最多只允许输入30个字)