Java教程

JAVA抽象类

本文主要是介绍JAVA抽象类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
抽象方法的概念

 抽象方法主要指不能具体实现的方法并且使用abstract关键字修饰,也就 是没有方法体。

具体格式如下:
        访问权限 abstract 返回值类型 方法名(形参列表); public abstract void cry();

抽象类和抽象方法的关系

 1.抽象类中可以有成员变量、构造方法、成员方法;

2. 抽象类中可以没有抽象方法,也可以有抽象方法;

3.拥有抽象方法的类必须是抽象类,因此真正意义上的抽象类应该是具有 抽象方法并且使用abstract关键字修饰的类

抽象类的实际意义

• 抽象类的实际意义不在于创建对象而在于被继承。

• 当一个类继承抽象类后必须重写抽象方法,否则该类也变成抽象类,也 就是抽象类对子类具有强制性和规范性,因此叫做模板设计模式。

code demo:

public  abstract class AbstractTest {
    private int cnt;

    public AbstractTest() {
    }

    public AbstractTest(int cnt) {
        setCnt(cnt);
    }

    public int getCnt() {
        return cnt;
    }

    public void setCnt(int cnt) {
        this.cnt = cnt;
    }

    // 自定义抽象方法
    public abstract void show();

}
public class SubAbstractTest2 extends AbstractTest {
    @Override
    public void show() {
        System.out.println("使用多态方式可以提高代码的可维护性哦!");
    }

    public void test() {
        System.out.println("第二个子类中独有的方法!");
    }
}
public class SubAbstractTest extends AbstractTest/*, Account*/ {
    @Override
    public void show() {
        System.out.println("其实我是被迫重写的,否则我也得变成抽象的呀!");
    }

    public static void main(String[] args) {

        // 1.声明本类类型的引用指向本类类型的对象,没有多态
        SubAbstractTest sat = new SubAbstractTest();
        sat.show();//调用SubAbstractTes中的show

        System.out.println("-------------------------------");
        // 2.声明AbstractTest类型的引用指向子类的对象,形成了多态
        // 多态的使用场合之二: 直接在方法体中使用抽象类的引用指向子类类型的对象
        AbstractTest at = new SubAbstractTest2();
        // 编译阶段调用父类版本,运行阶段调用子类版本
        at.show();
        ((SubAbstractTest2) at).test();

        System.out.println("-------------------------------");
        SubAbstractTest2 sat2 = new SubAbstractTest2();
        sat2.test();
    }
}

 

这篇关于JAVA抽象类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!