javaSE进阶学习-01
final:表示不可改变,只要被final修饰了的就只能赋值一次
-
采用 final 修饰的类不能被继承、采用 final 修饰的方法不能被覆盖、采用 final 修饰的变量不能被修改
-
如果修饰的引用,那么这个引用只能指向一个对象,也就是说这个引用不能再次赋值, 但被指向的对象是可以修改的
-
final修饰实例变量系统不管,程序员必须手动给一个默认值,不手动就会报错。(因为系统默认的无参构造给变量默认值,发现该变量有final修饰,就报错了)程序员手动赶在系统赋默认值之前赋值编译器就不报错了。
-
构造方法不能被 final 修饰
-
final修饰的实例变量一般带static,
-
final修饰的变量必须显示初始化
抽象类abstract
-
abstract 关键字定义的类就是抽象类,采用 abstract 关键字定义的方法就 是抽象方法
-
抽象的类是不能实例化的,就像现实世界中人其实是抽象的,张三、李四才是具体的
-
一个类中含有抽象方法,那么这个类必须定义成抽象类
-
抽象方法不能有主体
-
抽象方法必须被重写!!!起到一个约束作用,就是子类必须实现 ,如果子类不复写抽象方法,这个子类也要声明成抽象类
-
抽象类和方法都不能用final修饰,抽象类和方法要被子类实现呀,这俩关键词是矛盾的
接口(行为)接口我们可以看作是抽象类的一种特殊情况,在接口中只能定义抽象的方法和常量
接口基础语法
-
接口采用 interface 声明,是完全抽象的
-
接口是一种"引用数据类型"
-
接口定义:【修饰符列表】 interface 接口名{}
-
接口之间可以继承,也支持多继承,但接口之间不能实现
-
接口中只有常量和抽象方法
-
接口中的方法默认都是抽象的,不能有方法体, public abstract 可以省略
-
接口中的常量是 public static final 类型的,而且public static final可以省略
-
一个非抽象的类如果要实现接口中的方法,必须要重写接口里的抽象方法
-
继承是extends,实现是implements
-
接口和接口之间可以强制转换继承关系,没有继承关系也能强转,但注意:运行会报ClassCastException异常
-
extends和implements可以共存,先extends然后implements
-
使用接口写代码的时候可以用多态
接口在开发中的应用
-
面向接口编程主要是降低程序耦合度,提高程序扩展力
is a :Cat is a Animal 凡是满足is a的,都可以用继承表示A extends B
has a :I has a pen(我有一支笔)凡是满足has a 的都是关联关系都可以用属性表示
A{
B b;
}
like a: customer has a FoodMenu 厨师像一个菜单,表示实现关系A implements B
抽象类和接口
-
抽象类半抽象,接口是完全抽象
-
抽象类里有构造方法接口中没有
-
接口中只允许出现常量和抽象方法
-
接口一般都是对行为的抽象
-
接口接口能多继承,抽象类单继承
JavaSE进阶学习精要
深入探讨JavaSE中final关键字的用法,包括不可改变性、类与方法的限制,以及实例变量初始化的特殊规则。同时,解析抽象类与接口的概念,包括抽象方法的约束作用、接口的实现与多态性,以及它们在面向接口编程中的应用。
437

被折叠的 条评论
为什么被折叠?



