【java】抽象类

抽象:就是对一个事物的大概描述
抽象方法:以abstract修饰的方法,这种方法只声明返回数据类型,方法名和所需参数,并没有函数体。如 abstract void study();
抽象类特点:
1.抽象类中不一定含有抽象方法;但抽象方法一定在抽象类中。
2.抽象类不具备实际功能,只能用于派生子类
3.抽象类中可以包含构造函数,但是构造函数不能被声明成抽象。抽象类中的成员方法包括一般方法和抽象方法
4.抽象方法和抽象类都必须被abstract关键字修饰
5.抽象类不可以用new创建对象,必须由子类复写所有抽象方法后,建立子类对象调用。
6.抽象类中的抽象方法要被使用,必须要子类复写所有的抽象方法后,建立子类调用。如果子类只复写了部分抽象方法,那么该子类还是一个抽象类。

7.抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法)

abstract class Student//抽象类
{
	private String name;
	private int age;
	abstract void study();//抽象方法
	
	Student(String name,int age)
	{
		this.name=name;
		this.age=age;
	}


}

class GaoZhongStudent extends Student
{
	 private String xuehao;

	GaoZhongStudent(String name,int age,String xuehao)
	{
	  super(name,age);//执行父类构造函数
	  this.xuehao=xuehao;
	}
	 
	 public void study()
	 {
	 System.out.println("study gaozhong");
	 }	
}

class ChuZhongStudent extends Student
{
	 ChuZhongStudent(String name,int age)
	{
	  super(name,age);
	}
	 
	 public void study()
	 {
	 System.out.println("study chuzhong");
	 }	
}


class  abstractDemo
{
	public static void main(String[] args) 
	{
		ChuZhongStudent p1=new ChuZhongStudent("zhangsan",20);
		p1.study();
		GaoZhongStudent p2=new GaoZhongStudent("lisi",20,"yaohua001");
		p2.study();
	}
}

  

原文地址:https://www.cnblogs.com/paulwinflo/p/8027509.html