《java编程思想》P140-P160(第七章复部+第八章部分)
1.不用修饰符 修饰的方法或类,它们的修饰符是 默认修饰符,即 包访问权限(包内都可以用)(临时记的)
2.
final数据:
对于基本类型,final使数值恒定不变,而对于对象引用,final使引用恒定不变(java里数组也是对象引用)。一旦引用被初始化指向一个对象,就无法再把它指向另一个对象。然而,对象本身还是可以改变的!(只是不能再指向别的,但这个对象本身还是可以变化的)
Java允许生成”空白final”,所谓空白final是指被声明为final但是没有赋初值的域.无论什么情况,java编译器都保证空白final在使用前必须被初始化”. (必须在定义处或构造器里).
final方法:
为了防止继承类修改这个方法的定义(final方法无法被重写/覆盖)
类中所有的private方法都隐式的指定为final的.
覆盖只有在某个方法是基类的接口的一部分才出现,如果某个方法是private的,就不是接口的一部分,就不能被覆盖/重写,子类再写个一样的不能称为覆盖/重写,只是个子类的新方法(相同名称而已)。其实,子类不知道基类的某些方法(private),那么覆盖就无从谈起.
final类:final类无法被继承 .
3.初始化的顺序(得靠刷题)
- 父类--静态变量
 - 父类--静态初始化块
 - 子类--静态变量
 - 子类--静态初始化块
 - 父类--变量
 - 父类--初始化块
 - 父类--构造器
 - 子类--变量
 - 子类--初始化块
 - 子类--构造器
 
4.多态的作用是消除类型之间的耦合关系
5.动态(也称动态绑定、后期绑定、运行时绑定)
6.java中除了static方法和final方法(private属于final方法)之外,其它方法都是后期绑定
7.java中的方法都是通过动态绑定实现的多态
8.构造器中发生了多态,如果子类覆盖了父类方法,且父类构造器中调用了该方法,会发生多态现象,最终调用子类的该方法.但是此时子类的初始化还没进行,可能导致意想不到的结果.所以尽量不要在构造器中调用其他方法,或者仅仅调用final以及private(private默认final)的方法;
如下代码输出BB
public class test {
	class A{
		public A()
		{
			print();
		}
		void print()
		{
			System.out.println("A");
		}
	}
	public class B extends A{
		public B()
		{
			print();
		}
		void print()
		{
			System.out.println("B");
		}
	}
	public static void main(String[] args) {
		test t = new test();
		A a = t.new B();
	}
}
												
											《java编程思想》P140-P160(第七章复部+第八章部分)的更多相关文章
- 《Java编程思想》笔记 第七章 复用类
		
1.组合 将其他类的对象引用置于新的类中. 3.继承 extends 从已知的一个类中派生出新的一个类,叫子类.子类实现了父类所有 非私有化 非静态 的属性和方法,并能根据自己的实际需求扩展出新的行为 ...
 - [Java编程思想-学习笔记]第3章  操作符
		
3.1 更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...
 - 【学习笔记】《Java编程思想》 第1~7章
		
第一章 对象导论 对整书的概要. 略读. 第二章 一切都是对象 创建一个引用,指向一个对象. 安全的做法:创建一个引用的同时便进行初始化. 对象存储的地方:1)寄存器:这是最快的存储区,因为它位于不同 ...
 - java编程思想第四版第九章总结
		
1. 策略设计模式 参考这篇文章:http://blog.csdn.net/chenjie19891104/article/details/6396458 讲的很清楚,策略设计模式.并且举了一个例子, ...
 - Java编程思想学习(五)----第5章:初始化与清理
		
随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一. C++引入了构造嚣(constructor)的概念,这是一个在创建对象时被自动调用的特殊方法.Java中也采用了构造器,并 ...
 - [Java编程思想-学习笔记]第1章  对象导论
		
1.1 抽象过程 Java是一门面向对象的语言,它的一个优点在于只针对待解问题抽象,而不用为具体的计算机结构而烦心,这使得Java有完美的移植性,也即Java的口号"Write Once, ...
 - 《Java编程思想》笔记 第二十一章 并发
		
1.定义任务 实现Runnable 接口的类就是任务类(任务类不一定是实现Runnable接口的类). 实现Runnable 接口,重写run()方法,run方法的返回值只能是 void 任务类就是表 ...
 - java编程思想第四版第九章习题
		
第三题 package net.mindview.interfaces; abstract class Base{ public Base(){ print(); } abstract void pr ...
 - [Java编程思想-学习笔记]第2章  一切都是对象
		
2.1 创建新的数据类型:类 通过第一章掌握了面向对象的理论后,我们知道每个对象必定属于一个类型,那么Java如何创建新的数据类型?如下程序所示: class Circle { // 属性 // 方 ...
 
随机推荐
- m6A甲基化及预测方法工具总结
			
DNA.RNA和蛋白三个层面的可逆修饰示意图(Fu et al. Nature Reviews Genetics, 2014) DNA和蛋白存在各种修饰,RNA也不例外,目前已知的RNA修饰已经超过上 ...
 - 使用 Docker 安装 showdoc
			
一.简介 ShowDoc 是一个非常适合IT团队在线共享文档的工具,在线访问地址为:https://www.showDoc.cc 本来也可以直接 pull showdoc 镜像到本地,使用 docke ...
 - Rocksdb基本用法
			
rocksdb 用法 rocksdb 介绍 RocksDB是使用C++编写的嵌入式kv存储引擎,其键值均允许使用二进制流.由Facebook基于levelDB开发, 提供向后兼容的levelDB AP ...
 - MOOC 数据库系统笔记(一):初步认识数据库系统
			
概述 什么是数据库 数据库是电子化信息的集合 数据库起源于规范化"表(Table)"的处理. Table:以按行按列形式组织及展现的数据. E.F.Codd,基于对"表( ...
 - 迥异和诡异的SendMessage和PostMessage
			
1 故障现象 故障现象1:能够收到SendMessage()发出的消息,但收不到PostMessage()发出的消息. 故障现象2:能够收到PostMessage()发出的消息,但收不到S ...
 - Kubernetes学习之Kubernetes架构
			
架构 Kubernetes历史
 - SpringBoot之整合Mybatis(增,改,删)
			
一,在上一篇文章SpringBoot之整合Mybatis中,我们使用spring boot整合了Mybatis,并演示了查询操作.接下来我们将完善这个示例,增加增,删,改的功能. 二,改动代码 1.修 ...
 - Mybatis源码解析,一步一步从浅入深(一):创建准备工程
			
Spring SpringMVC Mybatis(简称ssm)是一个很流行的java web框架,而Mybatis作为ORM 持久层框架,因其灵活简单,深受青睐.而且现在的招聘职位中都要求应试者熟悉M ...
 - pyenv的安装和简单使用
			
centos7.4 python2.7 安装pyenv需要的依赖 yum -y install gcc zlib-devel bzip2-devel openssl-devel ncurses-d ...
 - # C# 中的Task创建指南
			
本文还处于草稿阶段,难免还有错误修改改正,逻辑还不是很清晰,笔者会努力完善,长期更新! [0000] 前言 标题起得有些"大",意在集大家的力量,总结出来一份关于Task相对&qu ...