继上一篇的博客学习
五.abstract 抽象类
- 用abstract修饰类/方法
- 抽象类不能实例化,只能被继承
- 抽象方法无方法体,子类必须重写
- 抽象类可以有普通方法、构造方法、成员变量
- 构造方法、static、private 方法不能抽象
interface 接口 - 默认常量:public static final
- 默认抽象方法:public abstract
- JDK8+:默认方法(default)、静态方法(static)
- JDK9+:私有方法
- 接口无构造、不能实例化
- 类用implements实现,必须重写所有抽象方法
- 接口可多继承,类可多实现
抽象类 vs 接口
• 抽象类:单继承,有构造,偏向模板
• 接口:多实现,无构造,偏向行为规范
六、static 静态关键字 - 静态变量:属于类,所有对象共享,类名直接调用
- 静态方法:只能访问静态成员,不能用this/super
- 静态代码块:类加载时执行,只执行一次
- 静态内部类:不依赖外部类对象
- 规则:静态不能直接调用非静态
final 最终关键字 - final变量:常量,赋值后不可修改
- final方法:不能被重写
- final类:不能被继承(如String)
- final局部变量:先声明后赋值仅一次
内部类
- 成员内部类:依附外部类,可访问外部所有成员
示例:class Outer{
private String name = "外部类";
//成员内部类
class Inner{
public void show(){
System.out.println(name);
}
}
}
//测试创建对象
Outer.Inner in = new Outer().new Inner();
in.show(); - 静态内部类:static修饰,独立存在,只能访问静态
class Outer{
static class StaticInner{
public void test(){
System.out.println("静态内部类");
}
}
}
//创建方式
Outer.StaticInner si = new Outer.StaticInner(); - 局部内部类:定义在方法/代码块里
- 匿名内部类:快速实现抽象类/接口,最简写法
高频刷题考点速记 - 抽象类能有构造,接口没有
- 抽象方法不能是private/static/final
- static优先类加载,先静态后实例
- final修饰引用,地址不变,内容可改
- 匿名内部类只能创建一个对象
- 接口变量全是常量,方法全是公共抽象
今天学习的时候在刷博客,结果刷到一篇文章,其标题是:代码是ai写的,生产事故谁来背锅。让我感触颇深。由于我也是学计算机的,如果不出意外的话我大概率可能毕业后直接工作,也有可能成为码农。其实当今大部分的人都害怕自己的工作被ai取代,但害怕的同时又毫无节制,盲目得使用ai,这显然不对。
我觉得那篇文章最后一段话说的很对,想分享给大家:面对 AI 编程这波浪潮,大家都在焦虑“我是不是要被淘汰了”、“我是不是该去学怎么写 Prompt”。但其实,AI 写代码的速度越快,对我们的基本功考验反而越严苛。
在一个大家都能用 AI 瞬间生成海量代码的年代,敲键盘的手速早就不是壁垒了。真正的壁垒是什么?
是你能在一眼望不到头的 AI 代码中,敏锐地嗅出架构腐化的味道;是你坚持无论代码谁写的,都必须卡死测试覆盖率的底线;是你时刻清醒地知道,AI 只是工具,方向盘和刹车必须死死攥在自己手里。
不管大模型进化到第几代。打铁还需自身硬,在这个 AI 乱写的时代里,守住一个工程师的职业底线,比什么都强。

浙公网安备 33010602011771号