《疯狂java讲义精粹》系列读书笔记
隐藏:
- 隐藏是针对于父类的成员变量和静态方法而言的。
子类中声明了和父类相同的变量名或静态方法(方法名相同、参数列表相同、返回类型相同)则实现了对父类成员变量和静态方法的隐藏。
- 如果子类中有相同名称的静态方法或变量,父类的会被隐藏
- 如果子类中存在同名的静态方法或变量,则会隐藏父类中得静态方法或变量,此时子类调用的就是子类中自己的静态方法或变量;
- 如果子类中不存在同名的静态方法或变量,则会调用父类中的静态方法或变量;
- 父类调用的始终是其本身的静态方法和变量。
封装:
-
(面向对象的三大特征之一,另两个是继承和多态)
封装是把对象的属性和操作结合为一个独立的整体,隐藏对象内部操作的实现。
不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问优点:
隐藏内部实现细节,提供公共访问方式 类内部可以自由修改不影响其调用者
减少耦合度,提高安全性
private(当前类访问) default(包访问) protected(子类访问) public(公共访问)把一个类放在指定的包结构下,应该在Java原程序的第一个非注释行写下:
package packagename;
导入包中的类:
import package.subpackage…ClassName;
构造器
-
一种特殊的方法,主要在创建对象时进行初始化
User user = new User(); 这里调用的是一个方法1.构造方法名称与类名相同
2.不用定义返回值类型
3.不需要写return语句
4.和类的修饰符相同 构造器重载 在同一个类里面具有多个构造器,多个构造器的形参列表不同。
继承
- (面向对象的三大特征之一)
Java具有单继承的特点,即每个子类只有一个直接父类。
继承是一个对象获取另一个对象属性的过程,关键字为extends和implements。
super
-
在子类方法中调用父类被覆盖的实例方法,可以使用super限定来调用父类被覆盖的实例方法
-
super不能出现在static修饰的方法中,因为static修饰的方法是属于类的,而不是对象。
-
在一个构造器中调用另一个重载的构造器使用this,在子类构造器中调用父类构造器,使用super调用来完成。
多态
-
Java引用变量有两个类型,一个是编译时类型(声明时决定),一个是运行时类型(实际赋给该变量的对象决定)
AClass polymophicBc=new BClass();
//多态发生 向上转型:把一个子类对象直接赋给一个父类引用变量对象的实例类型不具备多态性。
向上转型创建的对象会遗失掉和父类不同的方法和变量(不能用来调用子类特有的方法和变量)。
引用变量的强制类型转换:(type)variable
instanceof:用于判断前面的对象是否是后面的类,或者其子类,实现类的实例
初始化块
修饰符只能是static,没有名字,因此无法通过类、对象来调用,只是在创建Java对象时隐式执行,而且是在执行构造器之前执行。