java中abstract抽象类的使用

什么是抽象类?

抽象类,抽象类是什么呢?顾名思义,抽象类就是抽象的类,抽象是相对于具体而言的,一般而言,具体类有直接对应的对象,而抽象类没有,它表达的是抽象概念,一般是具体类的比较上层的父类。

比如说,狗是具体对象,而动物则是抽象概念,樱桃是具体对象,而水果则是抽象概念,正方形是具体对象,而图形则是抽象概念。下面我们通过一些例子来说明Java中的抽象类。

抽象方法和抽象类

抽象方法和抽象类都使用abstract这个关键字来声明,语法如下所示:

抽象类

public abstract class Employee
{
	public abstract void work()
	{
			System.out.println("work");
	}

}

抽象类特点

  1. 抽象类不能被实例化,因为调用抽象方法没有意义
  2. 抽象类可以包含抽象方法和抽象访问器
  3. 抽象方法一定在抽象类中
  4. 抽象类中的方法要被使用,必须由子类继承复写所有的抽象方法后,建立子类对象调用,如果子类子类只复写了部分方法,那么该子类还是一个抽象类

常见错误

  1. 实例化抽象类
 public static void main(String [] args)
   {
      /* 以下是不允许的,会引发错误 */
      Student stu = new Student();

    }

编译将会报错
在这里插入图片描述

小程序举例

需求:获取一段程序的运行时间
原理:获取程序和结束的时间并相减即可。
那么怎么获取时间了?
在java中提供了一个方法
currentTimtMillis()
在这里插入图片描述
具体实现功能代码

abstract class GetTime
{
	public final void getTime()
	{
		long start=System.currentTimeMillis();
		runCode();
		long end=System.currentTimeMillis();
		System.out.print("毫秒:"+(end-start));
	}
	public abstract void runCode();
	
}

//继承GetTime类 重写runCode
class subTime extends GetTime
{
	public void runCode()
	{
		for(int i=0;i<1000;i++)
		{
			System.out.print(i);
		}
	}
}

抽象类中的方法要被使用,必须由子类继承复写所有的抽象方法后,建立子类对象调用
上图单独写一个runCode方法是因为每次要求的运行的代码是不一样的,这样子类继承之后,重写一下就OK,方便复用

public static void main(String[] args) 
	{
		subTime time=new subTime();
		time.getTime();
	}

这样就成功的调用了抽象类中的非抽象方法

总结:
抽象类和一般类没有太大的不同
该如何描述事物,就如何描述事物,只不过,该事物出现了一些看不懂的东西
这些不确定的部分,也是该事物的功能,需要明确出现,但是无法定义主体
通过抽象方法来表示。
抽象类比一般类 多了个抽象函数,就是在类中可以定义抽象方法,也可以不定义。不让该类建立对象
抽象类不可以被实例化。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值