Day09_随堂笔记
final
final : 最终的 adj. 作用在 : 类 , 成员变量 , 成员方法 , 局部变量 最终的类 : 此类没有子类 -> 阉割手术 最终的成员变量 : 此变量不能修改 -> 自定义常量 最终的成员方法 : 此方法不能被重写 最终的局部变量 : 此变量不能修改 -> 局部的自定义常量 -> 实时final 自定义常量 : 必须赋予初始化值,不能被修改 自定义常量的定义格式 : public static final 数据类型 常量名 = 初始化值; 常量名的命名 : 全部大写,多个单词用_分割
抽象类
类 : 是事物的抽象 抽象类 : 比类更为抽象的类叫抽象类 为什么会有抽象类: 当多个子类中的共有行为在父类中不好编写方法体,可以把这个共有方法在父类中定义成抽象方法,而抽象方法必须存在于抽象类中,所以有了抽象类; 格式: public abstract class 类名{ }
抽象类中的成员
抽象类中的成员: //以下成员抽象类中都可以没有!! 1. 成员变量 : 可以有也可以有多个 2. 自定义常量 : 可以有也可以有多个 *3. 构造方法 : 可以有也可以有多个 虽然抽象类中有构造方法但是不可以创建对象!! 4. 普通成员方法 : 可以有也可以有多个 5. 静态成员方法 : 可以有也可以有多个 *6. 抽象方法 : 可以有也可以有多个 抽象类和普通类的区别在: 1. 抽象类虽然有构造方法但是不可以创建对象 2. 抽象类中可以有抽象方法 抽象类和类之间是继承关系 ;
抽象类的使用
抽象类一般都是作为父类存在,抽象类中的成员就可以使用子类对象去使用; 子类继承抽象父类要重写抽象父类的所有抽象方法 或者 子类自己变成抽象类; 接下来使用子类对象调用抽象父类中的非静态成员,抽象父类中的静态成员使用抽象父类的类名调用! 抽象类一般都是作为父类的存在,约束子类的行为!
抽象方法
抽象方法 : 没有方法体的方法 格式 public abstract 返回值类型 方法名(形参列表); 父类中有抽象方法,子类必须重写父类的抽象方法或者子类自己也变成抽象类!
abstract
abstract : 抽象的 作用在 : 类,方法 被定义的类叫抽象类,被定义的方法叫抽象方法
接口
类 : 是事物的抽象 抽象类 : 比类更为抽象的类叫抽象类 //抽象类中有抽象方法 //如果一个类中所有的方法都是抽象方法,那么我们就可以把这个类定义为接口 接口: 比抽象类更抽象的"类"叫接口 //接口也是一种类型 如何定义接口: interface public interface 接口名{//大驼峰命名法则 } 类和类: 继承 -> 单一继承,多层继承 类和抽象类: 继承 -> 单一继承,多层继承 类和接口: 实现 -> 多实现 public class 子类 implements 父接口1,父接口2{ } 接口和接口: 继承 -> 多继承 public interface 子接口 extends 父接口1,父接口2{ } 抽象类和接口 : 实现 -> 多实现 类可以继承一个父类实现多个接口: public class 子类 extends 父类 implements 父接口1,父接口2{ }
接口的存在思想
接口的存在意义 : 打破了Java继承的单一性 //如果一个类中所有的方法都是抽象方法,那么我们就可以把这个类定义为接口 -> 什么情况下用接口 接口的存在意义 : 提供规范/规则,对子类/实现类的行为做约束 接口的存在意义 : 提供功能的拓展 生活中: USB接口,TypeC接口,API(Application Programming Interface) 要提供规则就要公开规则 -> 为什么接口中绝大部分成员都是默认 public 修饰
JDK7接口的成员和使用(重要)
JDK7版本的接口成员: //以下成员抽象类中都可以没有!! 1. 成员变量 : 没有成员变量 *2. 自定义常量 : 接口中所有的成员变量都是自定义常量 默认被 : public static final 修饰 3. 构造方法 : 没有构造方法 -> 不能创建对象 4. 普通成员方法 : 没有普通成员方法 5. 静态成员方法 : 没有静态成员方法 *6. 抽象方法 : 接口中所有的方法都是抽象方法 默认被 : public abstract 修饰 使用步骤: 1. 创建一个实现类,让类实现父接口 2. 要么把接口中所有的抽象方法实现/要么把实现类变成抽象类 3. 在使用接口的地方,创建接口的实现类对象并使用实现类对象调用方法
JDK8接口的成员和使用(重点)
1. 自定义常量 2. 抽象方法 3. 默认方法 格式: public default 返回值类型 方法名(形式参数列表){ 方法体; } 默认方法默认被 public 默认方法可以选择性重写 当实现类实现多个接口时,多个接口中有同名的默认方法,实现类必须重写该默认方法 4. 静态方法 格式: public static 返回值类型 方法名(形式参数列表){ 方法体; } 默认方法默认被 public 静态方法就不能重写 特殊: 接口中的静态方法只能使用接口名调用不可以使用实现类对象调用 使用步骤: 1. 创建一个实现类,让类实现父接口 2. 要么把接口中所有的抽象方法实现/要么把实现类变成抽象类; 3. 选择性重写父接口中的默认方法,不可以重写父接口中的静态方法 4. 在使用接口的地方,创建接口的实现类对象并使用实现类对象调用方法
JDK9接口的成员和使用(了解)
1. 自定义常量 2. 抽象方法 3. 默认方法 4. 静态方法 5. 私有方法(新增) 普通私有(默认方法服务) 格式: private 返回值类型 方法名(形参列表){ 方法体; } 当实现类实现父接口时,父接口中的私有方法是不需要处理的! 静态私有(静态方法服务) 格式: private static 返回值类型 方法名(形参列表){ 方法体; }