抽象类概述

抽象类:abstract


何时需要抽象类?
在程序中,有时候不能确定一个事物具有的具体方法时,需要将该类定义成抽象类。
这个不具体的方法(没有方法体的方法)称为抽象方法。
抽象类和抽象方法都必须用abstract修饰。
例如:

abstract class Dog
{
	abstract void howl();
}
class dog extends Dog
{
	void howl()
	{
		system.out.println("wangwang~~");
	}
}
class wolf extends Dog
{
	void howl()
	{
		System.out.println("howlhowl~~");
	}
}


抽象类的特点:
1,一个方法只有声明没有实现时该方法为抽象方法,用abstract修饰。抽象方法必须定义在抽象类中。

abstract class Demo	//抽象类
{
	abstract void show(); //抽象方法
}

2,抽象类不能被实例化。
3,抽象类必须有其子类覆盖所有的抽象方法,此时子类才能被实例化,否则不能。


有关抽象类的几个问题:
1,抽象类有构造函数吗?
  答:有。抽象类中的构造函数用于子类对象的初始化。
2,抽象类中可不可以不定义抽象方法?
  答:可以。目的是不让该类创建对象。AWT的适配器对象就是这种类。
  通常这种类中的方法有方法体却没有内容。

abstract class Demo	//抽象类
{
	abstract void show(); //抽象方法
}

3,抽象关键字不可以与哪些关键字共存?
  答:

  1,private,private修饰的方法只属于本类,不能被子类方法覆盖。
  2,static,抽象类不能被实例化,不能调用静态方法。
  3,final,final修饰的方法不能被重写,跟抽象方法必须被重写矛盾。 

4,抽象类和一般类的异同?
   答:

  相同点:
  抽象类和一般类都是用来描述事物的,都在类中定义了成员。
  不同点:
  1,一般类有足够的信息描述事物;
  抽象类描述事物的信息一般不足。
  2,一般类中不能定义抽象方法,只能定义一般方法;
  抽象类中可以定义抽象方法,也可以定义一般方法。
  3,一般类可以被实例化;
  抽象类不能被实例化。

5,抽象类必须是父类吗?
  答:是。因为需要子类覆盖其抽象方法后才可以对子类进行实例化。







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值