抽象类和抽象方法

这一节课,我们来了解一下抽象类和抽象方法。首先我们来了解一下什么叫做抽象类?我们创建一个类名字叫做颜色,那么这个颜色到底是红橙黄绿蓝靛紫中的哪个颜色呢?我们不知道对吧,所以这个时候这个颜色的类就是我们所说的抽象类。

抽 象 类

为了方便学习,这里我们直接上代码,大家可以在代码块里查看注释进行理解!

首先打开eclipse创建一个color类

public  abstract class color {//抽象类不能实例化
	//抽象类需要使用abstract来进行修饰
	
	public void show() {
		//我们在这里先创建一个show方法,以便这一期的学习
		
	}
	
}

class Red extends color{
	//再创建一个Red类继承color类,然后在这个类中重写show方法
	public void show() {
		//输出一句
		System.out.println("我是红色");
	}
}

class Blue extends color{
	public void show(){
		System.out.println("我是蓝色");
	}

这里的Red和Blue是color类的子类

然后我们创建一个demo1类,来实例化并运行一下效果。

public class demo {
	public static void main(String[] args) {//主函数
		color c1 = new Red();//实例化color类中的Red子类
		color c2 = new Blue();//实例化color类中的Blue子类
		
		//然后我们将两个子类的show方法调用一下
		c1.show();
		c2.show();
	}	
}

 运行以后控制台的运行效果如下:

抽象方法

所谓抽象方法,也就是抽象类里的方法。我们举个例子,创建一个Teacher类模拟老师,然后在Teacher类中添加一个teaching方法模拟讲课。那我们创建两个子类一个模拟数学老师,一个模拟英语老师以后就是如下情况

这里什么都没写,所以数学老师和英语老师都不讲课。这个时候我们就需要一个抽象方法。

抽象方法和抽象类一样需要abstract进行修饰,但抽象方法与其他方法不同的是,抽象方法的内容全部由子类来重写,所以不需要代码块区域。也就是不需要{}直接用;代替。如下:

 申明了抽象方法以后,我们会发现,刚刚创建的子类全部报错如图

 (由于疏忽,请大家在学习时候将上图中的English改为EnglishTeacher)

这个时候,我们就需要在子类中添加一个与抽象方法同名的方法,在方法中我们添加一个输出语句来对课程进行安排。所有代码展示如下:

public  abstract class Teacher {
	//先申明Teacher为抽象类
	
	abstract public void teaching();//抽象方法也需要abstract进行修饰,但是不需要{}直接使用;代替
	
}

class MathTeacher extends Teacher{
	//对抽象方法进行重写
	public void teaching() {
		System.out.println("我们来学习一下三角函数");
	}
}

class EnglishTeacher extends Teacher{
	//对抽象方法进行重写
	public void teaching() {
		System.out.println("open the English book");
	}
}

 以上就是抽象方法的讲解,抽象方法的使用场景一般用于当我们创建一个项目时,由系统架构师使用抽象的方法设计出程序的某些功能的整体架构,但是具体怎么实现这些功能运行就交给程序员来写。再简单点说,就是老板给你一个方案,这个方案的内容就是抽象方法,而具体怎么对这个方案进行安排就是程序员的事。

这里我们再对Teacher类进行一个运行展示,创建一个demo2类对Teacher进行实例化,然后调用子类的方法运行即可。代码如下:

public class demo2 {
	public static void main(String[] args) {//主函数
		Teacher lee = new MathTeacher();
		Teacher tom = new EnglishTeacher();
		
		lee.teaching();
		tom.teaching();
	}

}

效果图如下:

 以上就是抽象类和抽象方法的讲解,有疑问可以在评论区留言或私信我进行解答。学习更多Java编程知识请关注公众号:Z学堂  或加入官方QQ群:434291544(内含源代码文件和教学视频)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

I'm Z

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

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

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

打赏作者

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

抵扣说明:

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

余额充值