2024年最新28、抽象类官方教程学习_抽象类 教程(2),2024年最新2024最新大数据开发常用开源库总结

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

📖 【抽象类的作用】抽取子类的公共实现(或子类方法中的公共代码)到抽象父类中,要求子类必须要单独实现的方法(或代码块)定义成抽象方法。

🍀 上面对抽象类的作用的描述比较难理解,博主有半年之久的开发经验😊,觉得抽象类的作用相当巧妙且有用。【这也是博主为什么把抽象类的作用放在文章开头的原因】
🍀 文章后面会用具体代码体现抽象类的巧妙作用


✏️ An abstract class is a class that is declared abstract—it may or may not include abstract methods. Abstract classes cannot be instantiated, but they can be subclassed.
📜被abstract关键字修饰的类就是抽象类,抽象类中可能包含抽象方法,也可能不包含抽象方法。抽象类不能被实例化,但可以被继承。


✏️ An abstract method is a method that is declared without an implementation (without braces, and followed by a semicolon)
📜 抽象方法被abstract关键字修饰。抽象方法是没有具体实现的(没有花括号,末尾有分号)


✏️ If a class includes abstract methods, then the class itself must be declared abstract.
📜 如果一个类中包含抽象方法,则该类本身必须也要被abstract关键字修饰(则该类本身必须是抽象类)
📜 抽象方法不能定义在非抽象类中

/\*\*
 \* Animal 是一个抽象类
 \* eat() 是一个抽象方法
 \*/
public abstract class Animal {
    public abstract void eat();
}


✏️ When an abstract class is subclassed, the subclass usually provides implementations for all of the abstract methods in its parent class. However, if it does not, then the subclass must also be declared abstract.
📜 若一个抽象类被继承的话,该抽象类的子类需要实现它的父类(抽象类)中的所有抽象方法。但是,如果子类不想实现抽象父类中的抽象方法的话,子类也必须被声明为抽象类。

/\*\*
 \* Animal 是一个抽象类
 \* eat() 是一个抽象方法
 \*/
public abstract class Animal {
    public abstract void eat();

    public abstract void test();
}

abstract class LittleDog extends Animal {
    @Override
    public void eat() {
        System.out.println("Dog eats bones.");
    }
}

class BigDog extends LittleDog {
    @Override
    public void test() {
        System.out.println("BigDog test"); 
    }

    public static void main(String[] args) {
        // Dog eats bones.
        new BigDog().eat();
    }
}

二、抽象类知识点罗列

从大方向来看, 抽象类在非抽象类的基础上多了一个功能,且少了一个功能:①【】抽象类可以定义抽象方法;②【】抽象类不能实例化

✏️ 抽象类不能被实例化
✏️ 抽象类中不一定要包含抽象方法
✏️ 一旦类中有抽象方法,则该类必须是抽象类
✏️ abstract只能修饰类和方法
✏️ 抽象类中依然可以定义非抽象方法、构造器、静态属性、成员变量、初始化块等【抽象类在非抽象类的基础上多了可以定义抽象方法的功能】

🍀 抽象类不能被实例化,但它的构造器依然是必须的(抽象类的构造器是让子类来调用的)

✏️ 抽象方法没有实现(没有花括号,花括号被分号替代了)

✏️ 如果一个类继承了抽象类,则该子类必须实现抽象父类中的所有抽象方法,除非该子类也是抽象类【当子类是抽象类的时候,子类可以实现抽象父类的部分抽象方法(其他抽象方法可由抽象子类的子类实现)】

✏️ final(被 final 修饰的类不能被继承;被 final 修饰的方法不能被重写)和abstract关键字不能组合使用使用【finalabstract 组合使用会产生矛盾】
在这里插入图片描述

🍀 抽象类需要被子类继承,进而让子类实现抽象类中的抽象方法。若用 final 修饰抽象类,则抽象类无法被继承,那么抽象类中的抽象方法将毫无意义。
🍀 抽象方法需要被子类重写,否则抽象方法会毫无意义。若用 final 修饰抽象方法,则表示该方法不能被重写。

✏️ abstract 不能和 private 组合使用在方法中(抽象方法私有了子类就无法实现了)【private 不能修饰顶级类
在这里插入图片描述

✏️ abstract 不能和 static 组合使用

🍀 抽象方法不能用 private、final 和 static 来修饰(它们都是和重写相违背的)

三、抽象类的作用

📖 【抽象类的作用】抽取子类的公共实现(或子类方法中的公共代码)到抽象父类中,要求子类必须要单独实现的方法(或代码块)定义成抽象方法。

计算某段代码的执行时间

public class CodeTimes {


![img](https://img-blog.csdnimg.cn/img_convert/0875a26f5519e76a2f0f5a14af36332a.png)
![img](https://img-blog.csdnimg.cn/img_convert/a1d54f48c0402a89f08032625f6791c5.png)
![img](https://img-blog.csdnimg.cn/img_convert/55f685c313aed59bc7ebad8f0bc9fc37.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

涵盖了95%以上大数据知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值