Java学习-抽象类和抽象方法

1.概念

  • 抽象方法:一个方法只有声明,没有可实现的方法体;
  • 抽象类:如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
  • 抽象方法的产生:当子类的共性不断向上抽取,抽取到一定程度,我们无法共性定义出具体的实现方法,只能进行共性的声明;

2.使用
格式:abstract定义抽象类和抽象方法
设计原则

//员工类-抽象类
public abstract class Employee {
	String name;
	int id;
	
	public abstract void work();//抽象方法
}
//开发工程师类-抽象类
public abstract class Developer extends Employee {
}
//维护工程师类-抽象类
public abstract class Maintain extends Employee {
}
//Java开发工程师类
public class JavaDeveloper extends Developer {
	public JavaDeveloper(String name) {
		this.name = name;
	}

	public void work() {
		System.out.println(this.name + "正在开发java程序");
	}
}
//网络维护工程师类	
public class NetMaintain extends Maintain {
	public NetMaintain(String name) {
		this.name = name;
	}
	
	public void work() {
		System.out.println(this.name + "正在维护后台网络");
	}
}
//
public class AbastractDemo {

	public static void main(String[] args) {
		JavaDeveloper Ma = new JavaDeveloper("马华");
		NetMaintain Liu = new NetMaintain("刘烨");
		
		Ma.work();
		Liu.work();
	}
}

console输出结果:
马华正在开发java程序
刘烨正在维护后台网络

3.注意事项

  1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。

  2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

  3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

  4. 构造方法,类方法(用static修饰的方法)不能声明为抽象方法。

  5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

猜你喜欢

转载自blog.csdn.net/Jagger_Lin/article/details/82813191
今日推荐