抽象类必须要有抽象方法吗?面试篇(第十一天)

简介: 抽象类就相当于半成品的食物,经过简单的加工就成为一份可以食用的食物,而每个普通类就是可以食用的食物,所以抽象类不能实例化,因为实例化就相当于实例化出来的东西就是可以直接用的,而半成品不可以用,所以抽象类不可以实例化。

初级回答



不需要,抽象类不一定非要有抽象方法。


含义详解



很多人只听说过抽象类,但是在实际开发中很少用到抽象类,因为一些简单的程序中用不到抽象类,所以慢慢的对抽象类就有一点模糊,现在我们来说一说什么是抽象类,抽象类的存在有什么意义?




我们都知道java是面向对象的,一个对象就是一个类,这些类里包含对象的所有属性,所有这是一个普通的类,完整的类。而抽象类是只包含对象的一部分属性的类,比如我们想要定义一个人的类,一个大猩猩类,这个时候人的类中肯定有很多属性和大猩猩重复了,这个时候我们把他们中共有的属性拿出来,整理一个抽象类,可以认为是一个动物抽象类,因为人和大猩猩都是动物,所以这个抽象类只是人类,和大猩猩类的一部分。


抽象方法



现在我们来说抽象方法,同样人和大猩猩都有呼吸,走路等方法,所以这些方法我们都可以抽象出来成为抽象方法,但是抽象类中不一定有抽象方法,但是有抽象方法的一定要声明为抽象类,否则编译不通过。


总结



抽象类就相当于半成品的食物,经过简单的加工就成为一份可以食用的食物,而每个普通类就是可以食用的食物,所以抽象类不能实例化,因为实例化就相当于实例化出来的东西就是可以直接用的,而半成品不可以用,所以抽象类不可以实例化。假如我们要写一个车的项目,我们就可以把车的基础属性封装为一个抽象类,然后将不同的车,例如轿车、拖拉机、火车等都继承车的抽象类,这样就避免了很多重复的代码。


相关文章
|
1月前
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
66 9
|
1月前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
71 12
|
2月前
|
缓存 安全 Java
【JavaEE】——单例模式引起的多线程安全问题:“饿汉/懒汉”模式,及解决思路和方法(面试高频)
单例模式下,“饿汉模式”,“懒汉模式”,单例模式下引起的线程安全问题,解锁思路和解决方法
|
3月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
173 4
|
5月前
|
ARouter 测试技术 API
Android经典面试题之组件化原理、优缺点、实现方法?
本文介绍了组件化在Android开发中的应用,详细阐述了其原理、优缺点及实现方式,包括模块化、接口编程、依赖注入、路由机制等内容,并提供了具体代码示例。
90 2
|
6月前
|
Java
【Java基础面试二十】、介绍一下Object类中的方法
这篇文章介绍了Java中Object类的常用方法,包括`getClass()`、`equals()`、`hashCode()`、`toString()`、`wait()`、`notify()`、`notifyAll()`和`clone()`,并提到了不推荐使用的`finalize()`方法。
【Java基础面试二十】、介绍一下Object类中的方法
|
6月前
|
Java API 索引
【Java基础面试二十四】、String类有哪些方法?
这篇文章列举了Java中String类的常用方法,如`charAt()`、`substring()`、`split()`、`trim()`、`indexOf()`、`lastIndexOf()`、`startsWith()`、`endsWith()`、`toUpperCase()`、`toLowerCase()`、`replaceFirst()`和`replaceAll()`,并建议面试时展示对这些方法的熟悉度,同时深入理解部分方法的源码实现。
【Java基础面试二十四】、String类有哪些方法?
|
6月前
|
Java
【Java集合类面试三十】、BlockingQueue中有哪些方法,为什么这样设计?
BlockingQueue设计了四组不同行为方式的方法用于插入、移除和检查元素,以适应不同的业务场景,包括抛异常、返回特定值、阻塞等待和超时等待,以实现高效的线程间通信。
|
6月前
|
机器学习/深度学习 算法 Python
【机器学习】面试问答:决策树如何进行剪枝?剪枝的方法有哪些?
文章讨论了决策树的剪枝技术,包括预剪枝和后剪枝的概念、方法以及各自的优缺点。
90 2
|
6月前
|
SQL 安全 测试技术
[go 面试] 接口测试的方法与技巧
[go 面试] 接口测试的方法与技巧

热门文章

最新文章