抽象类:
(1)定义:
抽象类指的是在类中定义方法,而不去实现它,而在它的子类中去具体实现,继承抽象类的子类必须实现父类的抽象方法,除非子类是一个被定义的抽象类。
(2)特点:
1、抽象类不可以实例化。
2、继承一个抽象类,必须要实现抽象类中的抽象方法。
(3)好处(为什么要用抽象类):
抽象类是一个模板,防止子类忘记复写父类的抽象方法
(4)补充
抽象类里可以没有抽象方法,但包含抽象方法的类必须被声明为抽象类
抽象类里可以包含构造方法,但构造方法不能声明为抽象方法
抽象方法:
(1)定义:
抽象方法就是用abstract来修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体。也就是说抽象方法只要声明,不要实现。
(2)特点:
关键字:abstract
抽象方法没有方法体。
abstract 关键字,和哪些关键字不能共存。
final:被final修饰的类不能有子类(不能被继承)。而被abstract修饰的类一定是一个父类(一定要被继承)。
private: 抽象类中的私有的抽象方法,不被子类所知,就无法被复写。 而抽象方法出现的就是需要被复写。
static:如果static可以修饰抽象方法,那么连对象都省了,直接类名调用就可以了。可是抽象方法运行没意义。
抽象类和抽象方法 代码示例
abstract class Person{
/**
* 抽象类
*/
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
abstract void study();
}
class Student extends Person{
@Override//重写 study抽象方法
void study() {
System.out.println("学习抽象方法");
}
}
public class AbstractDemo {
public static void main(String[] args) {
Student stu = new Student();
stu.setName("张三");
System.out.print(stu.getName()+"在");
stu.study();
}
}
/*
* 运行结果 :张三在学习抽象方法
*
* */