java技术总结之路--接口与抽象类

本文对比了抽象类与接口在Java中的关键特性,包括变量、方法、抽象性、继承和实现规则。重点讲解了它们的定义、限制和使用场景,帮助理解两者在设计模式中的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接口与抽象类

自己对抽象类和接口的区别进行了总结。

首先来看抽象类

public abstract class Test01 {
	
	//普通变量
	public int x=1;
	//无参构造
	public Test01(){
		System.out.println("无参构造方法");
	}
	//有参构造
	public Test01(int x){
		this.x=x;
		System.out.println("有参构造方法"+this.x);
	}
	//抽象方法
	public abstract void open();	
	//普通方法
	public void test01() {
		System.out.println("abstract中的普通方法");
	}
	//私有的普通方法
	private void test02() {
		System.out.println("abstract中的普通方法");
	}
}

抽象类:
1.抽象类中可以有普通方法和普通变量
2.抽象方法必须为public或者protected修饰
3.抽象类中的普通变量和普通方法可以为私有的 但毫无意义
4.一个类继承于一个抽象方法后,则子类必须实现父类的所有抽象方法,如果没有实现父类的抽象方法,则必须将子类定义为抽象类
5.抽象方法中可以有构造方法(无参,有参均可)

其次来看接口

public interface Test01 {
	int x=10;
	public void test01();
	public void test02();
}

接口:
1.接口中可以定义变量,但会被隐士的指定为public static final,并且只能用public static final
2.接口中可以定义方法,但会被隐士的指定为public abstract
3.由此可以看出接口中的方法必须是抽象方法,一般情况下 不在接口定义变量
4.接口与接口之间为继承关系,接口与普通类之间是实现关系,如果一个类实现了一个接口,则必须重写这个接口里面的所有方法

基本的区别总结完毕,相同点想必大家也都了解,不管是抽象类还是接口都是不能实例化对象的,这就是最大的相同点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值