在Java语法中,关于abstract抽象类与interface接口的内容详解

本文详细介绍了Java中抽象类和接口的区别与使用。抽象类主要用于规范子类方法,而接口则提供了一种多继承机制,强调常量和抽象方法。两者在面向抽象设计中都起着关键作用。Java中,抽象类不能实例化,接口用于定义行为标准,且类可以实现多个接口。通过实例代码展示了抽象类和接口的实现方式,强调了它们在实际编程中的应用。
摘要由CSDN通过智能技术生成

在面向对象的编程过程中,抽象是他的特征之一。在JAVA中,可以通过俩种形式来体现OOP的抽象:接口类和抽象类,下面具体阐述一下abstract抽象类和interface接口。

一、abstract抽象方法,抽象类,面向抽象设计

在java语句中,我们通常会定义一个方法,如果这个方法没有具体执行代码,也不需要去执行,我们就可以把这个方法定义为抽象方法,这种方法只有声明,而没有具体实现,其定义格式如下

abstract void run()

抽象方法的定义中必须添加abstract前缀,用于声明我们写的这个方法是抽象方法,抽象方法必须放在抽象类中,抽象类的定义格式如下

//抽象方法的声明(abstract) +class+类名
abstract class run{
	
}

不管是抽象类还是抽象方法都是无法实例化的,也就是说我们无法调用抽象类或抽象方法的,那我们定义抽象类有什么作用呢?

public class Abstract01 {
	public static void main(String[] args) {
		Run p=new Runner();//实例化
		p.sayhello();
		//直接调用子类中的sayHello方法
		//而不需要去关心Run父类

	}
}
//抽象方法的声明(abstract) +class+类名
abstract class Run{
	public void sayhello() {
		
	}
}
class Runner extends Run{
     //子类必须重写父类方法
	@Override
	public void sayhello() {
		System.out.println("Hello");
		
	}
}

因为抽象类本身被设计出来就是只能用于继承,因此抽象类可以“强迫”子类实现其定义的抽象方法,否则编译就会报错,故抽象类的定义实际上是为了规范子类中的方法。在实际使用中,我们更多的去用抽象方法直接引用子类,而不需要关心父类。这种尽量利用高层类型而避免引用实际子类型的方式为面向抽象设计,在很多核心类库,框架技术和应用框架的底层技术是非常常见的。

二、interfacce接口

所谓interface接口,是比抽象方法更加抽象的一种代码结构,它只包含常量,抽象方法,默认方法等。interface接口的默认方法就是public abstract(无须输入)。

(1)一个interface接口包含:

            ①变量类型只能是常量,默认的修饰符为:public    static   final

            ②所有方法都是public  abstract类型的

            ③成员方法只能是抽象方法,而且只能使用修饰符public abstract

下面定义一个interface接口:

//定义接口Computer
interface Computer{
	public void Start();//定义公共普通方法start()
	abstract public void Engine();//定义抽象方法Engine()
	final String Processor ="intel i7";//定义常量Processor(处理器)intel i7
}

(2)类只能单继承,但是interface却可以多继承,使用关键字extends

//继承了其他接口:LoudSpeaker(扬声器),Scream(屏幕),Battery(电池)
interface Computer extends LoudSpeaker,scream,Battery{
	public void Start();//定义公共普通方法start()
	abstract public void Engine();//定义抽象方法Engine()
	final String Processor ="intel i7";//定义常量Processor(处理器)intel i7
}
interface LoudSpeaker{
	final String brand="Bose";
	
}
interface Scream{
	final String Brand="sansame";	
	
}
interface Battery{
	final String Brand="made in chian";
}

(3)类与接口的继承使用关键字implements

//电子设备类(class类)实现一个接口(电脑)
class electronicEq implements Computer {
	
}
interface Computer {
	
}

(4)类与类与接口的代码实现:

//类继承类,类实现接口
class electronicEq extends Smartphone implements Computer,LoudSpeaker {
	
}
//智能手机类
class Smartphone{
	
}
//电脑接口
interface Computer {
	
}
//扬声器接口
interface LoudSpeaker{
	
}

(5)接口与抽象类的比较

定义:抽象类用abstract class定义                            接口用interface定义

继承:抽象类只能用extends单继承                           接口用extends多继承,用implements实现类
成员变量的定义:抽象类可以定义                             接口不可以定义

常量:抽象类使用static final定义                               接口不需要关键字,接口定义的都是常量

俩者都可以定义抽象方法

非抽象方法:抽象类可以定义普通方法                      接口可以定义default方法

构造方法:抽象类可以定义构造方法                          接口不可以构造方法

访问修饰符:抽象类可以使用任何的访问修饰符        接口只能使用public修饰符

与诸君共勉

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#0000FF格子衫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值