(1)抽象类定义:java中可以定义没有方法体的方法,该方法称为抽象方法,抽象方法的类就是抽象类。
(2)一个类中只要有一个方法是abstract,那么这个类就是abstract。

(3)抽象类无法被实例化

abstract class Teacher{
	String name;
	int age;
	
	abstract void teach();//没有方法体的方法
}

class AbstractDemo{
	Teacher T = new Teacher();
	
}


(4)抽象类只能被抽象类继承:

abstract class Teacher{
	String name;
	int age;
	abstract void teach();//没有方法体的方法
}

class EnglishTeacher extends Teacher{
	
}
class AbstractDemo{
	public static void main(String[] args){
	
	}
}


(5)子类继承抽象类有两种方法

方法一:将子类也定义为抽象类
方法二:子类对抽象类所有抽象方法重写:

abstract class Teacher{
	String name;
	int age;
	abstract void teach();//没有方法体的方法
}

class EnglishTeacher extends Teacher{
	void teach(){
		
	}
}
class AbstractDemo{
	public static void main(String[] args){
	
	}
}

这时候的子类就是一般类了。

抽象类的几个知识点:

(1)抽象类中可以有构造方法。-----用于为子类对象进行初始化。
(2)抽象类中可以定义一般方法。-----目的是不让你new对象。
(3)abstract使用时是有限制的,不能和private,static, final一起使用。
(4)抽象类一定是一个父类。-----这个类一定会有子类继承它,并将它重写,然后才能将对象实例化