抽象类

抽象类是一种模板模式.抽象类为所以子类提供了一个通用模板,子类可以通过这个模板基础上进行扩展

通过抽象类,可以避免子类设计的随意性.通过抽象类.我们就可以做到严格限制子类的设计,使子类之间更加通用

要点:

  • 有抽象方法的类只能定义抽象类.
  • 抽象类不能实例化,及不能用new来示例化抽象类.
  • 抽象类可以包含属性,方法,构造方法.但构造方法不能用来new实例,只能用来被子类调用.
  • 抽象类只能用来继承.
  • 抽象方法必须被子类实现.

由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用.也是因为这个原因,通常在设计阶段决定要不要设计抽象类.

父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。

在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。

package abstractclass;

/**
 * 抽象类
 * 抽象类不能用来创建对象;
 * 抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
 * 如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。
 * @author mac
 *
 */

public abstract class Animal {//缺省情况下默认为public
	public abstract void shout();
	public void breath(){}//抽象类里可以调有普通方法
}

class Cat extends Animal {
	public void shout(){
		System.out.print("喵喵喵..\n");
	}
}

class Dog extends Animal{
	public void shout(){
		System.out.print("汪汪汪..\n");
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值