浅谈Java中抽象类(abstract class)的使用

原文来源于:程序员恰恰

如有侵权,联系删除

摘要:抽象是Java语言一个很重要的特性,可以通过两种方式来体现,其中一种方式就是抽象类。在Java类中,如果一个类没有包含足够的信息来描绘一个具体的对象,那么这样的类就是抽象类。本文根据对Java面向对象的学习理解,浅谈了抽象类定义及使用,然后给出一个代码案例来说明,最后做出总结。

 关键词:Java;抽象类;继承;实现;

  Java允许类或者成员方法具有抽象属性。如果在定义类的修饰词列表中包含有关键词abstract,那么则该类具有抽象属性。本文根据笔者对Java类和抽象类的理解浅谈了抽象类的定义及使用,试图给Java初学者提供一些借鉴与参考。

一、问题需求

  首先我们来讲一下Java中为什么要定义抽象类呢。我们的程序员在刚开始写程序的时候定义了一个类,但可能考虑不到这个类的方法该如何去实现。就比如在编写王者荣耀的时候,程序员定义了一个英雄类,这个英雄有三个技能,但程序员一时想不到这三个技能将来要改编写成什么样,像这种情况怎么办呢,程序员就可以定义一个抽象类,不具体的去实现这三个技能的方法。等设计师设计出技能的具体样式后,再由其他程序员用子类去实现这三个技能的具体方法。

  抽象类一般由架构师给出,架构师在定义一个框架的时候,没有那么多的时间与精力去具体实现里面的每一个方法,因此就可以定义抽象的方法让其他程序员用子类去实现。

二、抽象类的定义格式

2.1抽象方法的定义

  简单来说抽象类就是用关键词abstract修饰的类,抽象类包含有抽象方法。其定义格式为:

abstract  class  抽象类名 

{

abstract  返回类型 抽象方法名 ();//抽象方法

返回类型 方法名 (){ 语句体 };//普通方法

}

2.1实现抽象类中的方法

class  类名  extends 抽象类名 

{

返回类型 抽象方法名 (){ 语句体 };//具体实现的抽象方法

}

三、示例代码

public class xqy {
    public static void main(String[] args) {
        zlm2 sx=new zlm2();
        sx.jn();
        sx.js();

    }
}
 abstract class bizhe{
     abstract void jn();
     abstract void js();
}

abstract class zlm1 extends bizhe{
    void jn(){
        System.out.println("实现抽象方法1");
    }
}
class zlm2 extends zlm1{
    void js(){
        System.out.println("实现抽象方法2");
    }
}

四、总结

  综上所述我们可以看出抽象类可以包含抽象方法,也可包含普通方法。但它和普通类还是有区别的:

  1、抽象类的修饰符必须为public或者protected, 不能是private, 因为抽象类需要其子类去实现抽象方法,private修饰就不能被子类继承,因此子类就不能实现改方法。

  2、抽象类不能直接实例化,需要通过普通子类进行实例化。

  3、 如果子类只实现了抽象父类中的一些方法,那么该子类任然是抽象类(不能被实例化)。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值