Java——为什么要有抽象类的概念?

首先你要看到普通类的缺点:

假设我有一个父类:

class Animal            //创建一个动物类
{
	String name;
	int age;
	public void cry()    //动物会叫
	{
		System.out.println("不知道怎么叫!");    //可是我们不知道它怎么叫
	}
}

假如我下面有一个猫类和狗类继承了这个动物类:

class Dog extends Animal    //狗继承了动物类
{
	@Override
	public void cry()    //狗类重写了方法
	{
		System.out.println("汪!汪!");
	}
}
class Cat extends Animal    //猫继承了动物类
{
	@Override
	public void cry()    //猫类重写了方法
	{
		System.out.println("喵!喵!");
	}
}

然后你会发现,猫和狗类虽然继承并重写了父类方法,但是父类方法的方法体一点用都没有!!!

结果:这就是  父类方法的不确定性 。所以用抽象类来把父类的设计的抽象,以至于它都没有任何具体的事例

当父类的方法不能够确定时,可以用abstract关键字修饰该方法,被abstarct修饰的方法是抽象方法,被abstract修饰的类叫抽象类。

所以上面的程序可以改为:

abstract class Animal        //抽象类
{
	String name;
	int age;
	abstract public void cry();    //抽象方法,不需要实现这个方法

}
class Dog extends Animal
{
	@Override
	public void cry()
	{
		System.out.println("汪!汪!");
	}
}
class Cat extends Animal
{
	@Override
	public void cry()
	{
		System.out.println("喵!喵!");
	}
}

抽象类需要注意的几点:

  1. 抽象类不能被实例化。
  2. 有抽象方法的类,一定是抽象类,但是抽象类可以没有抽象方法。
  3. 当一个类继承的父类是抽象类的话,需要我们把抽象类中的所有抽象方法全部实现。
  4. 抽象方法不能有方法体。
  • 31
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
本书是一本与众不同的Java入门好书。作者以独特的视角,向Java初学者讲述了如何才能真正理解和掌握Java语言。本书充分考虑了初学Java语言的种种困难,讲解时细致入微,抽丝剥茧,层层推进,并采用对比、比喻和类比的方式讲解,还给出了大量的流程图帮助读者理解各种概念和程序的运行过程。另外,作者专门录制了近16小时的多媒体语音教学视频帮助读者直观地学习。这些视频和书中的源代码一起收录于本书的DVD光盘中。 本书分3篇。第1篇为Java语言基本语法,包括Java语言概述、配置开发环境、Java中的基本数据类型、Java运算符、Java流程控制语句和数组。第2篇为Java语言高级语法,包括类、对象、方法、继承、多态、修饰符、接口、抽象类、内部类、Java异常处理和多线程编程。第3篇为Java语言编程进阶,包括Java编程常用知识、Java文件编程、Java文件I/O编程、Java TCP编程、Java UDP编程、Java Swing编程、JDBC编程,最后还给出了一个聊天程序实例和一个数据表操作窗口实例,将Swing、UDP、Java集合类、线程同步、接口和JDBC编程有机地结合起来,展示了开发一个简单程序的典型步骤。 本书适合广大想学习一门编程语言的读者、没有任何基础的Java入门读者、Java自学人员、从其他语言转向Java语言的读者、大中专院校的学生和社会培训学生。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

狮子座的程序员

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值