Java 抽象知识笔记总结(油管)

Java系列文章目录

Java Optional 容器笔记总结


一、前言

目的:学习Java抽象相关知识

  • 对油管博主John讲解的抽象相关知识进行笔记总结

二、学习内容:

  • 抽象类的使用
  • 抽象类与接口的区别

三、问题描述

  • 抽象类相关知识没有实践经验

四、解决方案:

4.1 抽象类的使用

抽象类注意事项

  • 新建的类不能是抽象类
  • 子类继承抽象类必须实现抽象方法

参考代码如下:

package org.example;

public abstract class Animal {
    int age;
    public String name;

    public abstract void makeNoise();

}
package org.example;

public interface AnimalStuff {

    //int age = 5;

    void pool();


}
package org.example;

public class Cat extends Animal implements AnimalStuff{

    @Override
    public void makeNoise() {
        System.out.println("Meow");
    }

    @Override
    public void pool() {
        System.out.println("Cat is pool");
    }
}
package org.example;

public class Main {
    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.makeNoise();
        cat.pool();
    }
}
  • 我们可以通过子类继承抽象类来实现抽象方法

在这里插入图片描述

4.2 抽象类与接口的区别

4.2.1 接口复习

  • 接口里面包含终态静态与抽象

在这里插入图片描述

4.2.2 具体区别

我们已经知道Cat类不管是继承抽象类还是接口
都能在子类实现抽象方法
既然都能实现为什么我们还需要抽象类呢

区别:

  • 一个子类只能继承一个父类,但可以继承多个接口
  • 接口字段必须是静态与终态(终态已经定义了对子类来说没用
  • 抽象类可以有抽象方法也可以用其他方法灵活性高

相同点:

  • 抽象方法必须实现

4.2.3 使用场景

4.2.3.1 抽象类使用场景

Animal抽象类与Cat类
Cat与Animal是隶属关系(猫是动物)大部分动物一定会发声
所以抽象类Animal就可以定义发声的抽象方法让子类一定实现发声方法

  • 类相关性较高
4.2.3.2 接口使用场景

Cat类与AnimalStuff接口
同理,平级关系几乎大部分事务都能用这个抽象方法
所以方法使用与类关系不大

  • 类相关性较低

五、总结:

5.1 学习总结:

抽象类的作用:

  • 定义共享的属性和行为。
  • 提供一种规范,让子类去实现。
  • 避免"上帝类"(只有一个超级类做所有事情),鼓励模块化的继承。

抽象类与接口区别:

  • 一个子类只能继承一个父类,但可以继承多个接口
  • 接口字段必须是静态与终态(终态已经定义了对子类来说没用)
  • 抽象类可以有抽象方法也可以用其他方法灵活性高

声明:如本内容中存在错误或不准确之处,欢迎指正。转载时请注明原作者信息(麻辣香蝈蝈)。

  • 35
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值