abstract类、值传递

简介: abstract抽象类抽象类的应用场景:描述一类事物的时候,发现该事物确实存在着某种行为,但是目前该行为是不具体的,那么这时候我们应该抽取该方法的声明,不去实现该方法,这时候我们应该使用抽象类。

abstract抽象类

  • 抽象类的应用场景:
    描述一类事物的时候,发现该事物确实存在着某种行为,但是目前该行为是不具体的,
    那么这时候我们应该抽取该方法的声明,不去实现该方法,这时候我们应该使用抽象类。

  • 抽象类要注意的细节:

    1. 如果一个方法没有方法体,那么该方法必须使用abstract修饰。
    2. 如果一个类有抽象的方法,那么该类也必须使用abstract修饰,或者使用接口。
    3. 非抽象类继承抽象类的时候,必须要把抽象类中的所有抽象方法全部实现。
    4. 抽象类可以定义抽象方法以及非抽象方法。
    5. 抽象类是可以不存在抽象方法的。
    6. 抽象类不能创建对象。
      疑问: 为什么抽象类不能创建对象呢?
      因为抽象类一旦创建了对象就可以使用对象去调用方法了,一旦调用了抽象方法就没有任何的意义了。
    7. 抽象类是存在构造方法的。
      疑问:既然抽象类不能创建对象,那么存在构造方法的意义在那?
      抽象类的构造方法是留给子类调用初始化从父类继续下去的成员变量的。

abstract不能与以下关键字配合使用

  1. private修饰符
  2. final关键字
  3. static关键字

值传递

调用一个方法时,传递给方法的是变量多存储的值。

相关文章
|
7天前
在类中使用静态方法和实例方法有什么区别?
在类中合理地使用静态方法和实例方法,可以更好地组织和管理代码,提高代码的可读性、可维护性和性能,根据具体的业务需求和逻辑来选择使用哪种方法是编写高质量面向对象代码的关键。
|
6月前
|
Java
【Java基础】类名、抽象类、接口名的参数传递及成员内部类、局部内部类和匿名内部类的使用
【Java基础】类名、抽象类、接口名的参数传递及成员内部类、局部内部类和匿名内部类的使用
76 0
|
编译器
C++11之继承构造函数(using 声明)
C++11之继承构造函数(using 声明)
250 0
【C++要笑着学】多态 | 重写(覆盖) | 协变构多态 | 父虚子非虚也构多态 | final与override关键字(C++11) | 抽象类 | 纯虚函数 | 抽象类指针
本章我们继续讲解面向对象三大特性,上一章我们讲解了继承,本章我们讲解多态。从多态的概念一步步讲解,介绍构成多态的必要条件和两个例外。还会顺带讲解一下 C++11 更新的两个和多态有关系的关键字 final 和 override。上一章我们讲解了虚函数,本章会先补充纯虚函数的概念,然后再引入抽象类的概念。本章我们只学习C++多态的基础知识,至于多态的原理(VTBL、决议等)的难度相对较大,我们单独放到下一章去做专门讲解。
278 0
【C++要笑着学】多态 | 重写(覆盖) | 协变构多态 | 父虚子非虚也构多态 | final与override关键字(C++11) | 抽象类 | 纯虚函数 | 抽象类指针
C#编程-108:调用泛型方法
C#编程-108:调用泛型方法
C#编程-108:调用泛型方法
学生类-构造函数
学生类-构造函数
179 0
|
前端开发 开发者
class-实例方法和静态方法|学习笔记
快速学习 class-实例方法和静态方法
|
前端开发 开发者
class-子类访问父类上的实例方法|学习笔记
快速学习 class-子类访问父类上的实例方法
114 0
|
JavaScript 安全 前端开发
你知道匿名内部类、Lambda表达式为嘛只能使用外部final的变量吗?
你知道匿名内部类、Lambda表达式为嘛只能使用外部final的变量吗?
你知道匿名内部类、Lambda表达式为嘛只能使用外部final的变量吗?