抽象类与接口

本文介绍了Java中的抽象类和接口。抽象类是一种无法实例化的类,用于为子类提供通用属性和行为。抽象方法在抽象类中声明但不实现,必须由子类完成。子类继承抽象类时,必须实现所有抽象方法。接口则是一种更纯粹的抽象,它不能包含实例变量,只能有常量、抽象方法。接口用于多继承,一个类可以实现多个接口。接口的使用增强了代码的灵活性和可扩展性。

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

1.抽象类

1.1概念:本质是和父类一样的,但我们从学生出发向上走,

学生
生物

是不是变得越来越难以描述其具体是什么,变得越来越抽象,这就是抽象类。
—————————————————————————————————

1.2.实现

public abstract class Person{
/*里面用来实现抽象方法*/
}

对于一个抽象类到底有多抽象取决于它到底有多少子类,就有多少要实现的方法就有很多。
抽象方法和抽象类差不多,就是有子类所共有的。

public abstract class Person{
  public abstract void walk();
  /*抽象方法不用去具体实现,所以就不用{},直接用;结尾。*/
  /*有一个抽象方法就必为抽象类,final不与抽象一起*/
}

1.3.子类继承
子类在继承是要把抽象类中的所有方法都给实现(并不是都要写内容)才行,不然会报错。

public class Student extends Person{

	@Override
	public void walk() {
		// TODO 自动生成的方法存根
		
	}
}

—————————————————————————————————
如果我们希望我们的程序可以多重继承,可是Java中规定一个子类有一个父类,而我们想一个子类有多个父类就需要接口。

—————————————————————————————————

2.接口

2.1.概念:一种特殊的抽象类,用interface来定义,需要用implements去实现,可以用于补充。
在这里插入图片描述

2.2.实现
接口在创建时会有单独的类型。其形式:

public interface Interface1 {

	/**
	 * 1.成员变量会默认 public static final.
	 * 2.无构造器
	 */
	public abstract void sleep();

}

在使用时候:

public abstract class Person implements Interface1 {

	/**
	 * Default constructor
	 */
	public Person() {
	}

	/**
	 * 这是Person原本的方法
	 */
	public abstract void walk();

	/**
	 * 这是接口的
	 */
	public abstract void sleep();

}

然后就由子类去实现其具体功能:

public class Student extends Person{

	@Override
	public void walk() {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public void sleep() {
		// TODO 自动生成的方法存根
		
	}
}

还有一种使用方法既继承(先实现)又有接口(后),当有多个接口时
用,进行分隔。:

public class Student extends Person implements Importw{

	@Override
	public void walk() {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public void sleep() {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public void Show() {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public int ShowInfo() {
		// TODO 自动生成的方法存根
		return 0;
	}

}

2.3.使用时可以用new去测试接口类的方法用到了多态

public class Test3 {

	public static void main(String[] args) {
	/*当我们去创建Student类型的对象,对于引用变量i,
	*它只能访问它本身类型中的方法。
	*而存在同名方法,使用的为实际实例的对象。
	*/
		Importw i=new Student();
	}
}

3.总结

接口通常和抽象类一同使用。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

i s s a

感谢大佬支持

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

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

打赏作者

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

抵扣说明:

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

余额充值