本系列博客汇总在这里:Java系列_汇总
目录
一、抽象方法概念
当多个具体的实体类存在着共同的行为,但是有着不同的表现,我们在父类继承过程中父类的方法具体实现不能确定,但是能确定的是他们都有这种行为,我们就把这种行为方法作为抽象方法,简单的举个例子:吃就是一个行为方法,但是不知道具体吃的什么,从而这个行为方法就是抽象方法。
二、抽象语法
- 语法
- 如果在一个类中存在一个抽象方法,那么这个类一定是抽象类,这个类上也要有 abstract 标识:
- 注意:抽象类中可以没有抽象方法。但是有抽象方法的一定是抽象类。
public abtract [返回值] [void] 方法名 (参数列表);
//没有方法体
abstract class 类名
{
属性
方法
}
三、抽象类的特点
- 抽象类不能被实例化,抽象类必须被子类继承才能使用子类实例化。
- 示例
- 非抽象类的子类继承抽象类必须实现抽象类的所有抽象方法,意思是抽象类继承抽象类就可以不用实现抽象类的抽象方法,但是就不可以实例化了。
- 抽象类也可以继承抽象类,这样不需要实现父抽象类的方法。
- 抽象类的抽象方法不能和 private,final,static 共存
abstract class Person
{
String name;
int age;
public abstract void study();
public abstract void work();
public abstract void eating();
}
class Student extends Person
{
public void work()
{
System.out.println(name+"在工作");
}
public void study()
{
System.out.println(name+"在学习JAVA");
}
public void eating()
{
System.out.println(name+"在吃西瓜");
}
}
class Worker extends Person
{
public void work()
{
System.out.println(name + "在工作");
}
public void study()
{
System.out.println(name + "在学习PHP");
}
public void eating()
{
System.out.println(name + "在吃苹果");
}
}
class Welcome
{
public static void main(String[] args)
{
// 抽象类不可以实例化
// Person p = new Person();
System.out.println("-------------------------------------------");
Student s = new Student();
s.name = "张三";
s.work();
s.study();
s.eating();
System.out.println("-------------------------------------------");
Worker w = new Worker();
w.name = "李四";
w.work();
w.study();
w.eating();
}
}
如有错误,欢迎指正!