java之abstract

本文详细解读了抽象类(带有abstract修饰符的类)的概念,强调其与抽象方法的区别,指出抽象类中可以包含具体方法。重点介绍了如何声明和理解abstract关键字的使用,以及它与final和abstract同时修饰方法的限制。

abstract(抽象)修饰符,可以修饰类和方法
有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法
abstract修饰符在修饰类时必须放在类名前
用关键字abstract修饰的类成为abstract类
abstract A{

}
用关键字abstract修饰的方法称为abstract方法
对于abstract方法,只允许声明,不允许实现,而且不能使用final和abstract同时修饰一个方法

Java中,`abstract` 关键字主要用于定义抽象类和抽象方法,以下是详细介绍: ### 抽象类 抽象类使用 `abstract` 修饰,不能被实例化,只能单继承。抽象类中可以包含抽象方法和非抽象方法,非抽象方法需要有方法体。如果一个类继承了抽象类,若实现了所有的抽象方法,子类可以不是抽象类;若没有实现所有的抽象方法,子类仍然是抽象类 [^2]。 示例代码如下: ```java public abstract class Shape { public String name; public void create() { System.out.println("Creating a shape."); } public abstract void draw(); } class Circle extends Shape { @Override public void draw() { System.out.println("Drawing a circle."); } } ``` ### 抽象方法 抽象方法是一种没有方法体的方法,必须使用 `abstract` 关键字修饰,且只能存在于抽象类或接口中。子类继承抽象类时,必须实现父类中的所有抽象方法,否则子类也必须声明为抽象类。 示例代码如下: ```java public abstract class Animal { public abstract void makeSound(); } class Dog extends Animal { @Override public void makeSound() { System.out.println("Woof!"); } } ``` ### 接口 接口中所有的方法默认都是抽象的,自 Java 8 开始,定义接口时推荐不写 `public` 和 `abstract`,因为这些都是接口默认就带有的。接口就是给出一些没有实现的方法,封装到一起,某个类要使用时,再根据具体情况把这些方法实现 [^1][^4]。 示例代码如下: ```java interface MyInterface { void myMethod(); } class MyClass implements MyInterface { @Override public void myMethod() { System.out.println("Implementing myMethod from MyInterface."); } } ``` ### 特性总结 - 抽象类可以包含抽象方法、普通方法、属性和构造方法,但不能被实例化 [^3]。 - 抽象方法没有方法体,必须在抽象类或接口中定义,子类继承时需要实现。 - 接口中的方法默认是抽象的,类实现接口时需要实现接口中的所有抽象方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值