Java面向对象(19)--抽象类与抽象方法abstract

简介: Java面向对象(19)--抽象类与抽象方法abstract

用abstract关键字来修饰一个类,这个类叫做抽象类。


用abstract来修饰一个方法,该方法叫做抽象方法。


抽象方法:只有方法的声明,没有方法的实现。以分号结束:

比如:public abstract void talk();


含有抽象方法的类必须被声明为抽象类。


抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体。若没有重写全部的抽象方法,该子类仍为抽象类。


不能用abstract修饰变量、代码块、构造器;

不能用abstract修饰私有方法、静态方法、final的方法、final的类。


abstract修饰类: 抽象类


①此类不能实例化

②抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程)

③开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作


abstract修饰方法:抽象方法


①抽象方法只有方法的声明,没有方法体

②包含抽象方法的类,一定是抽象类。但抽象类中可以没有抽象方法

③若子类重写了父类中的所有的抽象方法,此子类方可实例化。若子类没有重写父类中的所有的抽象方法,则此子类也是一个抽象类, 需要使用abstract修饰



相关文章
|
17小时前
|
Arthas 存储 监控
性能监控之常见 Java Heap Dump 方法
【6月更文挑战8天】性能监控之常见 Java Heap Dump 方法
19 6
|
20小时前
|
安全 Java
Java 面向对象之旅:在封装的港湾中,找到代码的安宁。
【6月更文挑战第15天】封装是Java面向对象的核心,它保护了类的内部数据,如`Book`和`Student`类中的属性。通过设定私有成员和公共方法,代码更有序,防止直接访问导致的混乱。封装提供了一种控制数据交互的方式,确保安全,如`setGpa()`方法验证输入。这使得代码结构清晰,如同港湾中的船只,井然有序,赋予编程过程美感和安全感。在面向对象的旅程中,封装是我们的庇护所,助力我们构建更美好的程序世界。
|
23小时前
|
设计模式 Java
一文掌握 Java 面向对象精髓:从类定义到对象实战
【6月更文挑战第15天】Java面向对象编程初学者指南:类是对象模板,如`Person`类含`name`和`age`属性。创建对象用`new`,如`Person person = new Person()`。访问属性如`person.name="Alice"`,调用方法如`person.sayHello()`。类能继承,如`Student extends Person`。对象间共享数据可传参或共用引用。多态性允许父类引用调用子类方法。注意对象生命周期和内存管理,避免内存泄漏。通过实践和理解这些基础,提升编程技能。
|
23小时前
|
Java
深入 Java 面向对象:类的定义,竟然藏着这么多门道!
【6月更文挑战第15天】Java中的类定义是OOP的基础,它封装属性(如Student的name和age)和行为(如study())。简单的类仅触及表面,而复杂的类可模拟真实世界对象的多样性和交互。类还可通过继承扩展,如Student从Person派生,增加特有属性和行为。接口和抽象类等概念进一步增强了灵活性和可扩展性。类定义的深度和广度是构建高效、可维护代码的关键。
|
3天前
|
安全 Java API
Java并发基础-启动和终止线程
Java并发基础-启动和终止线程
13 0
|
3天前
|
Java 调度
Java并发基础-线程简介(状态、常用方法)
Java并发基础-线程简介(状态、常用方法)
8 0
|
2天前
|
监控 Java API
Java 程序设计 第八章 线程
Java 程序设计 第八章 线程
|
2天前
|
存储 安全 Java
Java多线程编程--JUC
Java多线程编程
|
2天前
|
缓存 NoSQL Java
Java高并发实战:利用线程池和Redis实现高效数据入库
Java高并发实战:利用线程池和Redis实现高效数据入库
12 0