什么是抽象(abstract )类 ?
Java语言中,用abstract 关键字来修饰一个类时,这个类叫作抽象类。抽象类是它的所有子类的公共属性的集合,是包含一个或多个抽象方法的类。抽象类可以看作是对类的进一步抽象。在面向对象领域,抽象类主要用来进行类型隐藏。(百度百科)
如果一个方法使用 abstract 来修饰,则说明该方法是抽象方法,抽象方法只有声明没有实现。需要注意的是 abstract 关键字只能用于普通方法,不能用于 static 方法或者构造方法中。
1)定义一个抽象类—Person
public abstract class Person {
String name;
int age;
String sex;
public Person(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public abstract String introduce();//自我介绍
}
抽象类的使用原则:
- 抽象类无法实例化
- 所有的抽象类必须有子类
- 抽象类的子类(不是抽象类)必须重写抽象类的所有方法
2)现在定义一个Student类继承Person类
会报错,因为父类是抽象类所以子类必须重写父类所有方法或者子类也必须是抽象类
public class Student extends Person{
public Student(String name,int age,String sex) {
super(name, age, sex);
}
//重写父类中的抽象方法
@Override
public String introduce() {
return "你好我叫"+name+",我今年"+age+"岁了,我的性别是"+sex+"";
}
}
3)最后创建一个测试类,创建学生类的对象,并调用学生类中的 introduce() 方法,测试类的代码如下:
public class Test {
public static void main(String[] args) {
Student student = new Student("小明",18,"男");
System.out.println(student.introduce());
}
}
输出结果: