Java面向对象-抽象类
定义:在java中,含有抽象方法的类称为抽象类,同样不能生成对象;
注意点:
1,包含一个抽象方法的类是抽象类;
2,抽象类和抽象方法都要用abstract关键字修饰;
3,抽象方法只需要声明而不需要实现;
4,抽象类必须被子类(假如不是抽象类)必须重写抽象中的全部抽象方法;
5,抽象类不能被实例化;
我们先来定义一个抽象类:package com.java1234.chap03.sec11;
/**
* 定义一个抽象类People
* @author user
*
*/
public abstract class People {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void say(){
System.out.println("我的姓名是:"+this.getName());
}
/**
* 定义一个抽象方法 职业 让子类去具体实现
*/
public abstract void profession();
}
抽象类,定义一个属性name 以及方法say() 再定义一个抽象方法 profession 具体实现让子类去实现;
我们搞一个测试类:
我么尝试下实例化下People类:
我们会看到 编译出错,不能实例化People类;
我们定义一个Student类,以及一个Teacher类:package com.java1234.chap03.sec11;
public class Student extends People{
@Override
public void profession() {
System.out.println("职业是:学生");
}
}package com.java1234.chap03.sec11;
public class Teacher extends People{
@Override
public void profession() {
System.out.println("职业是:老师");
}
}
我们搞一个测试类:package com.java1234.chap03.sec11;
public class Test {
public static void main(String[] args) {
Student student=new Student();
student.profession();
Teacher teacher=new Teacher();
teacher.profession();
}
}
运行输出:
职业是:学生
职业是:老师