抽象类使用注意事项和细节|学习笔记

简介: 快速学习抽象类使用注意事项和细节。

开发者学堂课程【Scala 核心编程-基础抽象类使用注意事项和细节】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8980


抽象类使用注意事项和细节

 

目录:

一、抽象类的价值

二、抽象类的细节

 

一、抽象类的价值

在做开发的时候,很少有人用抽象类,用接口的比较多。觉得抽象类没有价值,但是实际上抽象类的价值更多的是在于设计。在开发中作为一个管理者,管五个程序员,五个程序员每个人都有自己编写代码的风格。管理时可以去抽象一个类,然后交给相关的开发人员,让他们用子类继承并实现。这样在一定程度上就可以去控制代码的一些规范,把控程序的一个结构。所以抽象的价值在于设计,更多是站在设计层面来使用这个抽象类。

 

二、抽象类的细节

1、细节1

抽象类不能实例化,跟 java 一样。java 抽象类也不能实例化。

例:

Object AbstractClassDetail01{

def main(args: Array[String]):Unit = {

//在进行实例化的时候,同时动态的将 say hello 进行实现。就相当于匿名之类。默认情况下一个抽象类是不能实例化的,但是实例化时动态的实现了抽象化的所有。

//抽象方法也可如下:

//var anlimal = new Animal03   会报错

var anlimal = new Animal03 {

override def sayHello(): Unti = {

println(say hello)

}

}

}

abstract class Animal03{

def sayHello()

}

2、细节2

抽象类不一定含有 abstract 方法。也就是说抽象类可以没有 abstract 方法。

写抽象类的细节描述问题。

例:先建一个 AbstractClassDetail01选择 object

Object AbstractClassDetail01{

def main(args: Array[String]):Unit = {

}

}

abstract class Animal02{

//在抽象类中可以有实现的方法

def sayHi ():Unit = {

println(xxx)

}

}

3、细节3

一旦类包含了抽象方法或者抽象属性,则该类必须声明为 abstract。

4、细节4

抽象方法不能有主体。

5、细节5

如果一个类继承的抽象类,则它必须实现抽象类所有抽象方法或抽象属性。

例:抽象属性

abstract class Animal03{

def sayHello()

var food:String

}

class Dog extends Animal03{//提示错误  把光标放在 alt 后面输入alt 加 enter 键,它会提示你。

override def sayHello():Unti = {  //override 可以拿掉

println(小狗汪汪叫”)

}

override var food:String=   //override 可以拿掉

}

这个时候 dog 就可以实际化了。实现了它的抽象方法和抽象属性,当然可以实际化。

6、细节6

抽象方法和抽象属性,不能用 private、 final 来修饰。因为这些关键字都跟重写或者实现相违背。假如一个方法是私有的,又是个抽象方法,谁来帮你实现,那必然是错的。

7、细节7

抽象方法可以有实现的方法

8、细节8

子类重写抽象方法不需要 override,写上也不会报错。

相关文章
|
9天前
|
Java Python
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
【9月更文挑战第18天】在 Python 中,虽无明确的 `interface` 关键字,但可通过约定实现类似功能。接口主要规定了需实现的方法,不提供具体实现。抽象基类(ABC)则通过 `@abstractmethod` 装饰器定义抽象方法,子类必须实现这些方法。使用抽象基类可使继承结构更清晰、规范,并确保子类遵循指定的方法实现。然而,其使用应根据实际需求决定,避免过度设计导致代码复杂。
|
4月前
|
Java
抽象类和接口的区别(小白版)
抽象类和接口的区别(小白版)
49 0
2022年 一月19号复盘内容二。(继承 多态 接口 抽象)(一)
2022年 一月19号复盘内容二。(继承 多态 接口 抽象)(一)
37 0
|
C#
C# 基础一 抽象方法 抽象类声明及使用(源码案例)
C# 基础一 抽象方法 抽象类声明及使用(源码案例)
115 10
|
编译器 Scala 开发者
函数使用注意事项和细节2|学习笔记
快速学习函数使用注意事项和细节2。
|
Scala 开发者
覆写字段注意事项和细节说明2|学习笔记
快速学习覆写字段注意事项和细节说明2。
覆写字段注意事项和细节说明2|学习笔记
|
开发者 Python
继承的注意事项 | 学习笔记
快速学习继承的注意事项,介绍了继承的注意事项系统机制, 以及在实际应用过程中如何使用。
继承的注意事项 | 学习笔记
|
Java 编译器 Scala
函数使用注意事项和细节3|学习笔记
快速学习函数使用注意事项和细节3。
|
Java 程序员 编译器
覆写字段注意事项和细节说明1|学习笔记
快速学习覆写字段注意事项和细节说明1。
101 0
|
Java 编译器 Scala
函数使用注意事项和细节1|学习笔记
快速学习函数使用注意事项和细节1。