抽象类

抽象类

什么是抽象类和抽象方法?
抽象的,顾名思义,这不是具体的东西,只是简单的描述,这和我们的抽象类类似,抽象类的本质还是类,使用了abstract关键字定义的类就是抽象类,使用了abstract关键字定义的方法就是抽象方法,如果这个类中含有抽象方法,那么这个类必定是抽象类,抽象类被子类继承了,子类必须重写抽象类中的抽象方法,如果子类不重写这个抽象方法,那么子类也必须是抽象类。还有需要注意的地方,抽象类不能被final修饰,抽象方法也不能被final修饰,因为抽象方法需要子类实现。
抽象方法
使用abstract关键字修饰的方法,就是抽象方法,抽象方法没有方法体,含有抽象方法的类必定是抽象类。
格式:

修饰符 abstract 返回值 方法名(参数列表);
例如:
	public abstract void eat();

抽象类
使用abstract关键字修饰的类,就是抽象方法。
格式:

修饰符 abstract class 类名{
	
}
例如:
	public abstract class AbstractTest{
		
	}

抽象类的特点

public abstract class AbstractTest {
	public abstract void eat();
}
//下面这一行是报错的,我们看看报错信息
class AbstractTest1 extends AbstractTest {
	
}

报错截图:
在这里插入图片描述
在这个报错信息可以清楚的看到解决方法,要么重写AbstractTest 类中的eat方法,要么将这个类也改成抽象类,这就很好的印证了抽象类的特点。


public abstract class AbstractTest {
	//这边的抽象方法中使用了final,子类无法重写该抽象方法,所有是报错的
	public final abstract void eat();
}

class AbstractTest1 extends AbstractTest {

	@Override
	public final void eat() {
	
	}	
}

报错截图:
在这里插入图片描述

//类中使用了final,子类无法继承,所以要继承这个抽象方法必须将这个final删除
public final abstract class AbstractTest {
	public abstract void eat();
}

class AbstractTest1 extends AbstractTest {

}

报错截图:
在这里插入图片描述
上面两段代码的报错的原因都是一样的,都是使用了final关键字,所以要解决报错就需要将final删除,这样印证了我们开头所说的抽象类不能被final修饰,抽象方法也不能被final修饰。
抽象类的使用

//抽象类
public abstract class AbstractTest1 {
	//抽象方法
	public abstract void eat();
}
//继承抽象类
public class AbstractTest2 extends AbstractTest1{
	//重写抽象方法
	@Override
	public void eat() {
		System.out.println("吃鲍鱼!");	
	}
}
public class AbstractTest3 {
	public static void main(String[] args) {
		//创建对象
		AbstractTest2 at2 = new AbstractTest2();
		at2.eat();
	}
}

执行结果:
在这里插入图片描述
还有一个点需要注意的就是抽象类是不允许创建对象的
报错截图:
在这里插入图片描述
总结:使用了abstract关键字定义的类就是抽象类,使用了abstract关键字定义的方法就是抽象方法,如果这个类中含有抽象方法,那么这个类必定是抽象类,抽象类被子类继承了,子类必须重写抽象类中的抽象方法,如果子类不重写这个抽象方法,那么子类也必须是抽象类。还有需要注意的地方,抽象类不能被final修饰,抽象方法也不能被final修饰,因为抽象方法需要子类实现。抽象类还不能创建对象。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值