Java抽象类知识整理(详细)

一、抽象类

在Java中,不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。

由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。

二、抽象方法

只有方法的声明,没有方法体的方法为抽象方法。

三、特点

1.有抽象方法的类一定是抽象类,抽象方法必须存在于抽象类中。

2.构造方法,类方法(用static修饰的方法)不能声明为抽象方法。

3.抽象类不能实例化对象。

4.抽象类强制继承它的子类重写其抽象方法。(子类只有重写了所有的抽象方法,子类才可以创建对象,否则子类还是一个抽象类)

5.抽象类、抽象方法不能被private、final、static修饰

6.抽象类中可以定义非抽象方法(子类可直接使用非抽象方法)

7.在抽象类中,定义抽象方法,关键字abstract不能省略。

四、定义

在Java中,使用abstract关键字,来定义抽象类和抽象方法。

例:

//定义抽象类
public abstract class AbstractDemo_1 {
    //定义抽象方法
    public abstract void fun_1();

    //定义非抽象方法
    public void fun_2(){
        System.out.println("我不是抽象方法!");
    }
}

五、抽象类的使用

抽象类不能被实例化,必须要创建子类,继承抽象类,重写里面的抽象方法,然后创建子类对象来使用。

例:

//定义抽象类
public abstract class AbstractDemo_1 {
    //定义抽象方法
    public abstract void fun_1();

    //定义非常抽象方法
    public void fun_2(){
        System.out.println("我不是抽象方法!");
    }
}
//定义一个类,继承上述定义的抽象类
class AbstractTest_1 extends AbstractDemo_1{

    //强制重写父类中的抽象方法
    @Override
    public void fun_1() {
        System.out.println("重写父类中的抽象方法!");
    }
}
//定义测试类
class Test{
    public static void main(String[] args){
        //创建子类对象
        AbstractTest_1 at = new AbstractTest_1();
        //调用重写后的抽象方法
        at.fun_1();
        //调用父类中的非抽象方法
        at.fun_2();
    }
}

猜你喜欢

转载自blog.csdn.net/u012430402/article/details/81145792