Java学习笔记

继承
基本语法:

public class Dog extends Animal {
}

类的初始化顺序: 父类对象–>属性初始化–>构造方法–>子类对象–>属性初始化–>构造方法

final关键字 使用final关键字有“最终的”含义
可修饰 class, attribute, method, variable
final修饰class, 则该类不允许被继承
final修饰attribute, 则该attribute不会进行隐式的初始化,只能必须在定义时或在构造方法中赋值
final修饰method, 则该method不允许被覆盖(重写)
修饰variable, 则该variable只能赋值一次,等同于常量

super关键字
子类的构造过程中必须调用父类的构造方法
如果子类的构造方法中没有显式的调用父类的构造方法,则系统会自动隐式调用
如显式调用父类的构造方法,调用必须在子类公早方法中的第一行
如果父类的构造方法有参数,必须在子类的构造方法中显式调用父类的构造方法

Object Object类是所有类的父类,如果一个类没有显式的使用extends继承某个类,则该类默认继承Object类。Object类的方法适合所有类
1. toString() 直接输出对象会返回该对象的哈希码(对象地址字符串)
2. equals() 比较对象的引用地址是否相同

多态 对象的多种形态
1. 引用多态
。 父类的引用可以指向本类的对象
。 父类的引用可以指向子类的对象

Dog extends Animal
>>> Animal obj1 = new Animal();  // 指向本类
>>> Animal obj2 = new Dog();     // 指向子类
// 当指向子类时,obj2相当于一个animal化的dog, 仅能使用父类中有的属性和方法,子类所独有的是不能使用的
  1. 方法的多态
    。 创建本类对象时,调用的方法为本类方法
    。 创建子类对象时,调用的方法为子类重写的方法或继承的方法

重写 和 重载
重写(overriding): 父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。
重载(overloading): 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。

引用类型转换
1. 向上类型转换(隐式/自动类型转换),小类型–>>大类型
2. 向下类型转换(强制类型转换), 大类型—>>小类型。 有风险,需用instanceof来规避

抽象类
1. 使用abstract关键字修饰
2. 应用场景
。从多个具有相同特征的类中提取出共同特性成为一个抽象类,以这个抽象类作为子类的模板,避免子类设计的随意性。

接口(interface) 类是一种具体实现体,而接口定义了某一些类需要遵守的规范,接口不关心这些类内部数据和具体实现方法。
定义接口:

[修饰符] interface name [extends name1, name2, ...] { 
    常量定义(public static final)
    方法定义 (public abstract )
 }

由于接口就是用来被继承的,所以修饰符一般采用public
一个类可以实现一个或多个接口,使用implements关键字。Java中类直接能继承一个父类,不够灵活,可用多个接口做补充。

你可能感兴趣的:(学习笔记)