Java基础 抽象类概述

鳄鱼君

发表文章数:643

热门标签

, , ,

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Java » Java基础 抽象类概述

类到对象是实例化,对象到类是抽象
抽象类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类,类本身是不存在的,所以抽象类无法创建对象
抽象类也属于引用数据类

抽象类定义的语法:[修饰符列表] abstract class 类名 {类体;}
抽象类是无法实例化的,无法创建对象,所以抽象类是用来被子类继承
抽象类的子类可以是抽象类,也可以是非抽象类
子类继承抽象类,子类可以实例化对象
抽象类虽然无法实例化,但是抽象类有构造方法,是供子类使用的
抽象类关联到一个概念:抽象方法,抽象方法表示没有实现的方法,没有方法体的方法public abstract void do();
抽象方法特点:没有方法体,以分号结尾;前面修饰符列表中有abstract关键字
抽象类中不一定有抽象方法,但是抽象方法一定出现在抽象类中

// 抽象类
abstract class Animal {
    // 抽象方法
    public abstract void move();
}

//Dog类(非抽象类)继承抽象类
class Dog extends Animal {

}

以上程序编译错误:抽象类中不一定有抽象方法,抽象方法必须出现在抽象类中,Dog类继承抽象类Animal,抽象类Animal中存在抽象方法,Dog类属于子类,非抽象的,那么会将抽象方法继承过来,程序就会报错。在Dog类中,需要将从父类继承过来的抽象方法覆盖/重写,或者也可以叫做“实现”,把抽象的方法实现了:

// 抽象类
abstract class Animal {
    // 抽象方法
    public abstract void move();
}

//Dog类(非抽象类)继承抽象类
class Dog extends Animal {
    public void move() {
    }
}

重要结论:一个非抽象的类继承抽象类,必须将抽象类中的抽象方法实现。这是java语法上强制规定的,必须的,不然编译报错。这里的覆盖/重写,也可以叫做实现(对抽象的实现)

public class AbstractTest {
    public static void main(String[] args) {
        // 面向抽象编程
        // 父类型指向子类型对象
        Animal a = new Dog();
        a.move();
    }
}

// 抽象类
abstract class Animal {
    // 抽象方法
    public abstract void move();
}

//Dog类(非抽象类)继承抽象类
class Dog extends Animal {
    public void move() {
        System.out.println("狗在吃骨头");
    }
}

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Java基础 抽象类概述》 发布于2020-08-10

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

1 + 5 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册