抽象类

抽象类

概念

抽象的概念:模糊 不具体。

普通的方法:有方法的声明部分,也有方法体部分,可被直接调用。
例:public void test(){
方法体;
}

抽象方法的概念:不具体的方法,没有方法体的方法。使用abstract修饰。不能被直接调用。
public abstract void test(); (抽象方法没有方法体,无法执行,不能被直接调用)

抽象类:不具体的类。类中有了抽象方法,导致类也就不具体的,就是抽象类。也使用abstract修饰。类中只要有了抽象方法,那么这个类也就必须是一个抽象类。

普通的具体类
public class Demo{
内容;
}

抽象类
public abstract class Demo{ (因为其中有抽象方法不能执行,所以也不能创建对象
内容;
}

为什么要有抽象类?

如果父类的一个方法要被所有的子类都重写,那么这个方法有方法体就毫无意义(反正方法都会被重写,不如让这个方法直接没有方法体),而且抽象方法被子类继承之后,子类必须重写继承自父类的抽象方法。

class Demo2 
{
	public static void main(String[] args){
	
	    B b = new B();
		b.show();//B...Override...show

		C c = new C();
		c.show();//C...Override...show
	}
}

//父类 --- 抽象类
abstract class A
{
	/*
	 既然要求在A类的所有子类中都要去重写继承自A类的show()方法,
	 所以在A类中定义show()方法并指定方法体内容就毫无意义。
	 
	 此时就将A类中的show()方法定义为抽象方法,即只有方法声明部分,
	 没有方法体;然后让A类的所有子类都"必须"去重写继承自A类的show()
	 方法。
	 
	 public void show(){
	  System.out.println("A...show");
	 }

	 因为A类中有抽象方法了,所有A类也抽象了,就必须将A类定义为抽象类,
	 即给A类加修饰符abstract;
	*/
	//抽象方法
	public abstract void show();
	
}

//子类
class B extends A
{
	//要求在B类中必须重写继承自A类的show()方法
	public void show(){
	  System.out.println("B...Override...show");
	}
	
}
//子类
class C extends A
{
    //要求在C类中必须重写继承自A类的show()方法
	public void show(){
	  System.out.println("C...Override...show");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值