java 08
1、Abstract关键字
java为了表示现实生活中抽象的概念集合,提供了一个关键字给我们使用:abstract
abstract 抽象的
可以修饰类,修饰成员方法
1. 被abstract修饰的类是抽象类, 抽象类不能被实例化
2. 被abstract修饰的方法是抽象方法, 抽象方法不能有大括号实现
3. 在抽象类,既可以存在具体实现的方法, 也可以存在抽象方法
4. 若一个类中有抽象方法, 这个类一定是一个抽象类
5. 当一个具体的类继承一个抽象类, 必须要实现抽象类中的所有抽象方法
6. 当一个抽象类继承一个抽象类的时候, 可以选择性地是否重写抽象方法
抽象类与类中成员的关系:
成员变量: 抽象类既可以存在变量, 也可以存在常量
构造方法: 可以存在构造方法, 是为了将来在继承关系做初始化的作用
成员方法: 既可以是具体的实现方法, 也可以是抽象方法
abstract不能和哪些关键字共存
final 不能共存
static 不能共存
private 不能共存
abstract class ShuJia{
}
public class AbstractDemo3 {
public static void main(String[] args) {
}
}
抽象案例
abstract class Staff{
String name;
String id;
int salary;
public Staff() {
}
public Staff(String name, String id, int salary) {
this.name = name;
this.id = id;
this.salary = salary;
}
public abstract void work();
}
class Worker extends Staff{
public Worker() {
}
public Worker(String name, String id, int salary) {
super(name, id, salary);
}
@Override
public void work() {
System.out.println("普通员工敲代码");
}
}
class Manager extends Staff{
int common;
public Manager() {
}
public Manager(String name, String id, int salary, int common) {
super(name, id, salary);
this.common = common;
}
@Override
public void work() {
System.out.println("经理做PPT");
}
}
public class AbstractTest {
public static void main(String[] args) {
Staff s1 = new Worker("李刚", "sj1001", 10000);
s1.work();
Staff s2 = new Manager("江川","sj1002",6000,200000);
s2.work();
}
}
2、Interface 接口
接口:表示一个类的额外功能的实现
java提供了一个关键字表示接口:interface
接口我们可以将它看作成一个特殊的类, 因为接口也会被编译成一个class文件
接口注意事项:
1. 接口中只能存在抽象方法, jvm默认会在方法前使用public abstract进行修饰, 刚学java推荐加上
2. 类和接口是实现关系 可以通过关键字implements实现接口
3. 当一个具体的类实现一个接口的时候, 必须要实现接口中所有的抽象方法
4. 若一个抽象类实现一个接口的时候,可以选择性地实现接口中的抽象方法
5. 一个类可以同时实现多个接口,使用逗号隔开
6. 接口和接口存在继承关系, 并且一个接口可以同时继承多个接口
7. 接口中只能定义常量, 默认修饰符为public static final
8. 接口无法实例化, 接口中不能出现构造方法
面试题:
java中允许多继承吗?
若是类和类之间的继承,只能单继承,不能多继承
若是接口与接口之间的继承,可以多继承
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现