一、什么时候使用抽象类?
1.当多个类中出现相同功能,但是功能主体不同。
二、抽象类的特点?
1.抽象方法一定在抽象类中。
3.抽象方法和抽象类都必须被abstract关键字修饰。
2.抽象类不可以用new创建对象,因为调用抽象方法没有意义。
3.抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。
注意:如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
三、代码体现;
abstract class Student{
abstract void show(); //不定义方法体,因为没意义
abstract void show1();
}
class LaoShi extends Student{ // 继承抽象类
//必须重写抽象方法
void show(){System.out.println("老师的任务是教书!");}
//如果使用不到show1()方法,还是要重写show1()方法,不然运行JVM报错。
void show1(){}
}
class XueSheng extends Student{ // 继承抽象类
//重写抽象方法
void show(){System.out.println("学生的任务就是学习!");}
void show1(){}
}
public class Abstract{
public static void main(String[] args){
LaoShi l = new LaoShi();
l.show(); //输出 老师的任务是教书!
XueSheng x = new XueSheng();
x.show(); 输出 学生的任务就是学习!
}
}
1.当多个类中出现相同功能,但是功能主体不同。
二、抽象类的特点?
1.抽象方法一定在抽象类中。
3.抽象方法和抽象类都必须被abstract关键字修饰。
2.抽象类不可以用new创建对象,因为调用抽象方法没有意义。
3.抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。
注意:如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
三、代码体现;
abstract class Student{
abstract void show(); //不定义方法体,因为没意义
abstract void show1();
}
class LaoShi extends Student{ // 继承抽象类
//必须重写抽象方法
void show(){System.out.println("老师的任务是教书!");}
//如果使用不到show1()方法,还是要重写show1()方法,不然运行JVM报错。
void show1(){}
}
class XueSheng extends Student{ // 继承抽象类
//重写抽象方法
void show(){System.out.println("学生的任务就是学习!");}
void show1(){}
}
public class Abstract{
public static void main(String[] args){
LaoShi l = new LaoShi();
l.show(); //输出 老师的任务是教书!
XueSheng x = new XueSheng();
x.show(); 输出 学生的任务就是学习!
}
}