Java抽象类

简介: 前面我们把Java语法的三大特性(封装,继承,多态)给大家分享完了,小编今天给大家分享的是Java的抽象类,fighting~~

🚗1.抽象类的概念


     在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

     抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。



🚗2.抽象类语法


      在 Java 中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体,代码如下:7e39dbd18aef42afbaa01782a44fe307.png

abstractclassPerson{
publicintage;
publicStringname;
publicabstractvoidfun();
}
classAextendsPerson{
@Overridepublicvoidfun() {
System.out.println("正在吃饭!");
    }
}
classBextendsPerson{
@Overridepublicvoidfun() {
System.out.println("正在跑步!");
    }
}
publicclassTest_1 {
publicstaticvoidmain(String[] args) {
//Person person = new Person();抽象类不能被实例化,否则报错    }
}


🚗3.抽象类的特性


关于抽象类我们知道以下几点:

  • 使用abstract关键字修饰类
  • 抽象类不能实例化
  • 在抽象方法中,可以有抽象发放或者非抽象方法
  • 一个方法被abstract修饰,没有具体的实现,只要包含抽象方法,这个类必须是抽象类
  • 当一个普通类继承了这个抽象类,必须重写抽象类当中的抽象方法
  • 抽象类存在的最大意义就是为了被继承
  • 抽象方法不能被private,final,static修饰,否则报错
  • 当一个子类没有重写抽象父类的方法,可以把当前子类变为abstract修饰
  • 抽象类中不一定包含抽象方法

那么普通类和抽象类的有什么区别呢?

  • 抽象类不能实例化,普通类可以
  • 抽象类当中,可以包含非抽象方法和抽象方法,但是普通类只能包含非抽象方法


🚗4.抽象类的作用


抽象类本身不能被实例化 , 要想使用 , 只能创建该抽象类的子类 . 然后让子类重写抽象类中的抽象方法 .



🚗 5.抽象类的总结


  • 1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
  • 2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
  • 3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
  • 4. 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
  • 5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

抽象类的使用在实际开发中也是很有意义的,如对上文有意见或者有错误,还请大佬们斧正,觉得有帮助的童鞋们,创作不易,蟹蟹三连!


目录
相关文章
|
3月前
|
存储 Java 开发者
抽象类和接口,你不知道的秘密!Java编程新视角
抽象类和接口,你不知道的秘密!Java编程新视角
38 5
|
3月前
|
设计模式 Java 开发者
抽象类和接口如何改变你的编程方式?Java界的革命
抽象类和接口如何改变你的编程方式?Java界的革命
45 3
|
18天前
|
Java
Java基础(13)抽象类、接口
本文介绍了Java面向对象编程中的抽象类和接口两个核心概念。抽象类不能被实例化,通常用于定义子类的通用方法和属性;接口则是完全抽象的类,允许声明一组方法但不实现它们。文章通过代码示例详细解析了抽象类和接口的定义及实现,并讨论了它们的区别和使用场景。
|
20天前
|
Java 测试技术 开发者
Java零基础-抽象类详解
【10月更文挑战第17天】Java零基础教学篇,手把手实践教学!
17 2
|
23天前
|
Java 测试技术 开发者
Java零基础-抽象类详解
【10月更文挑战第15天】Java零基础教学篇,手把手实践教学!
19 2
|
2月前
|
Java
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
本文介绍了Java中抽象类和抽象方法的使用,以及ArrayList的基本操作,包括添加、获取、删除元素和判断列表是否为空。
27 2
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
|
1月前
|
安全 Java 数据安全/隐私保护
【一步一步了解Java系列】:探索抽象类与接口的秘密
【一步一步了解Java系列】:探索抽象类与接口的秘密
25 3
|
2月前
|
Java
Java——抽象类和接口
抽象类是一种不能被实例化的类,至少包含一个抽象方法(无实现体的方法),常用于定义一组相关类的共同特征,并强制子类实现特定方法。抽象方法不能被 `static` 或 `final` 修饰,且必须被重写。 接口则是一个完全抽象的类,用于规范类的行为。接口使用 `interface` 关键字定义,不能实例化,并且类与接口之间是实现关系。 内部类是在一个类内定义的类,分为成员内部类、静态内部类、局部内部类和匿名内部类。成员内部类可被修饰符修饰,静态内部类只能访问外部类的静态成员,局部内部类定义在方法内,匿名内部类则隐藏了名字,直接通过 `new` 关键字定义并实现接口或继承类。
20 5
Java——抽象类和接口
|
1月前
|
Java
Java中抽象类和接口有什么区别?
本文阐述了Java中抽象类和接口的区别,包括类型扩展、方法/属性访问控制符、方法实现、使用目的等方面的不同,并提供了抽象类和接口的使用示例,以及Java中其他类型的类(普通类、内部类等)的简介。
97 0
Java中抽象类和接口有什么区别?
|
2月前
|
Java
Java 抽象类详解
在 Java 中,抽象类是一种特殊类,用于提供基础定义并派生具体子类,支持代码复用。它包含抽象方法(无实现)和具体方法(有实现),不能被实例化,需用 `abstract` 关键字定义。子类必须实现所有抽象方法,除非子类也是抽象类。抽象类可用于定义模板或框架,确保子类实现特定方法。通过示例展示了如何定义抽象类 `Animal` 及其子类 `Dog` 和 `Cat`,并在主类中调用相关方法。使用抽象类可以提高代码复用性和设计质量,但也可能增加维护难度和性能开销。