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

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

开发者学堂课程【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,写上也不会报错。

相关文章
|
6天前
|
Java 物联网
还在纠结抽象类和接口?看这篇就够了!
本文详细介绍经典又高频的Java面试题——抽象类和接口的区别,以及它们在实际开发中的应用场景。内容主要为以下五部分: 1.抽象类和接口的概念 2.抽象类和接口的区别 3.抽象类和接口的应用场景 4.面试中的答题技巧 5. 总结
|
2月前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
127 65
|
6月前
|
存储 编译器 程序员
【C++高阶】C++继承学习手册:全面解析继承的各个方面
【C++高阶】C++继承学习手册:全面解析继承的各个方面
60 1
|
7月前
|
Java
抽象类和接口的区别(小白版)
抽象类和接口的区别(小白版)
73 0
|
编译器 Scala 开发者
函数使用注意事项和细节2|学习笔记
快速学习函数使用注意事项和细节2。
|
Scala 开发者
包对象注意事项和细节说明|学习笔记
快速学习包对象注意事项和细节说明。
包对象注意事项和细节说明|学习笔记
|
Scala 开发者
覆写字段注意事项和细节说明2|学习笔记
快速学习覆写字段注意事项和细节说明2。
109 0
覆写字段注意事项和细节说明2|学习笔记
|
开发者 Python
继承的注意事项 | 学习笔记
快速学习继承的注意事项,介绍了继承的注意事项系统机制, 以及在实际应用过程中如何使用。
继承的注意事项 | 学习笔记
|
Java 编译器 Scala
函数使用注意事项和细节3|学习笔记
快速学习函数使用注意事项和细节3。
|
Java 编译器 Scala
函数使用注意事项和细节1|学习笔记
快速学习函数使用注意事项和细节1。

热门文章

最新文章