抽象类---概述

抽象类

 定义:抽象类前使用abstract关键字修饰,则该类为抽象类。

 使用抽象类要注意以下几点:

  1. 抽象类是约束子类必须有什么方法,而并不关注子类如何实现这些方法。

  2. 抽象类应用场景:

   a. 在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法(可实现动态多态)。

   b. 从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免子类设计的随意性。

  3. 抽象类定义抽象方法,只有声明,不需要实现。抽象方法没有方法体以分号结束,抽象方法必须用abstract关键字来修饰。如:

   

  4、包含抽象方法的类是抽象类。抽象类中可以包含普通的方法,也可以没有抽象方法。如:

    

  5、抽象类不能直接创建,可以定义引用变量来指向子类对象,来实现抽象方法。以上述的Telephone抽象类为例:     

1 public abstract class Telephone {
2     public abstract void call();//抽象方法,方法体以分号结束,只有声明,不需要实现
3     public void message(){
4         System.out.println("我是抽象类的普通方法");
5     }//抽象类中包含普通的方法
6 }

复制代码

1 public class Phone extends Telephone {
2 
3     public void call() {//继承抽象类的子类必须重写抽象方法
4         // TODO Auto-generated method stub
5         System.out.println("我重写了抽象类的方法");
6     }
7     
8 }

复制代码

 以上是Telephone抽象类和子类Phone的定义,下面我们看main函数里:

    

    运行结果(排错之后):

    

猜你喜欢

转载自blog.csdn.net/Hope_lee/article/details/82120142