public abstract class Animal {
public abstract void cry();
}
子类 Cat
public class Cat extends Animal {
@Override
public void cry() {
System.out.println(“miao~”);
}
}
子类 Dog
public class Dog extends Animal {
@Override
public void cry() {
System.out.println(“wow~”);
}
}
子类一旦继承抽象类,必须实现抽象类中的所有抽象方法(抽象类中的方法不一定都是抽象方法)。
在使用抽象类时需要注意的点:
-
抽象类不能实例化,实例化的工作应该交由它的子类来完成,它只需要一个引用即可。
-
抽象方法必须由子类进行重写
-
只要包含一个抽象方法的类都必须定义为抽象类
-
抽象类中可以包含具体方法,当然也可以不包含抽象方法。
-
子类中的抽象方法不能与父类的抽象方法同名。
-
abstract
不能与final
并列修饰一个类。(前者为了继承,后者不能继承) -
abstract
不能与private
、static
、final
、native
并列修饰一个方法。
接口是一种比抽象类更加抽象的表达形式。接口不是类,不能被实例化。接口是用来建立类与类之间关系的协议,它所提供的是一种形式,而没有具体的实现。同时实现该接口的实现类必须要实现该接口的所有方法。
接口是抽象类的延伸,在 Java
中,类是单继承的,但是接口则可以实现多个。
使用接口的注意事项:
-
接口中所有方法默认都声明为
public
-
在接口中可以定义 “成员变量” ,或者说不可变的常量,因为接口中的 “成员变量” 会被自动声明为
public static final
。 -
接口中不存在实现方法。
-
实现接口的非抽象类必须实现该接口的所有方法,抽象类可以不用实现。
Kafka实战笔记
关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图
- Kafka入门
- 为什么选择Kafka
- Karka的安装、管理和配置
- Kafka的集群
- 第一个Kafka程序
afka的生产者
- Kafka的消费者
- 深入理解Kafka
- 可靠的数据传递
- Spring和Kalka的整合
- Sprinboot和Kafka的整合
- Kafka实战之削峰填谷
- 数据管道和流式处理(了解即可)
- Kafka实战之削峰填谷
Kafka实战之削峰填谷**
- 数据管道和流式处理(了解即可)
[外链图片转存中…(img-Vew7r1Pw-1714311006588)]
- Kafka实战之削峰填谷
[外链图片转存中…(img-dtL4AsBK-1714311006589)]