- 抽象类不能被实例化(不能产生一个对象)
- 这个方法是抽象的,没有实现,就是用来被重写的
- 如果一个类中包含一个抽象方法 那么这个类也必须是抽象类,也就是声明类的时候必须使用关键字:abstract
- 抽象类中可以有 抽象方法、普通的实现的方法、成员变量
- 抽象类中可以有构造函数,用来给抽象类中的成员属性赋值
不能与抽象类中的abstract共存的关键字:
- final:一个类声明成abstract就是被继承的,如果final将无法被继承
- private:一个抽象方法需要被重写,无法私有化
- static:一个抽象方法没有方法体
class Personnel{
String name;
int age;
char sex;
public void show();// 缺少方法主体,或声明抽象 public void show(){}这样就正确
}
class Student extends Personnel{
public void show(){
System.out.println("子类Student");
}
}
class Teacher extends Personnel{
public void show(){
System.out.println("子类Teacher");
}
}
class Demo{
public static void main(String[] args){
Personnel per = new Student();
per.show();
Teacher t = new Teacher();
t.show();
}
}
class Personnel{
String name;
int age;
char sex;
public abstract void show();
}
class Student extends Personnel{
public void show(){
System.out.println("子类Student");
}
}
class Teacher extends Personnel{
public void show(){
System.out.println("子类Teacher");
}
}
class Demo {
public static void main(String[] args){
Personnel per = new Student();
per.show();
Teacher t = new Teacher();
t.show();
}
}
abstract class Personnel{
String name;
int age;
char sex;
public abstract void show();
}
class Student extends Personnel{
/*
public void show(){
System.out.println("子类Student");
}
*/
}
class Teacher extends Personnel{
/*
public void show(){
System.out.println("子类Teacher");
}
*/
}
class Demo{
public static void main(String[] args){
Personnel per = new Student();
per.show();
/*
Teacher t = new Teacher();
t.show();
*/
}
}