【JavaEE进阶系列 | 从小白到工程师】JavaEE中的抽象类和抽象方法

2年前 (2022) 程序员胖胖胖虎阿
174 0 0

文章目录

  • 💨更多相关知识👇
    • 一、抽象类概述
    • 二、抽象类格式
    • 三、抽象方法概述
    • 四、 抽象方法格式
    • 五、抽象类的特点
    • 六、抽象类的成员特点
    • 七、抽象类和普通类的区别
    • 八、案例
      • ⭐代码演示
  • 作者:KJ.JK

🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈
 
🍂个人博客首页: KJ.JK
 
欢迎大家点赞👍收藏💖评论💬关注🔒
 
💖源码获取 | 💻学习交流 | 🤝商务合作 | 💨私信作者


💨更多相关知识👇

💖JavaEE中的面向对象特征之封装

💖ArrayList集合中的常用成员方法

💖Java中String的split切割字符串方法详解

💖String中的replace的四个方法

💖JavaEE中的Stream流的常用方法

💖JavaEE中的Stream流知识点使用,精华总结,一文直接上手

💖JavaWeb中的过滤器(Filter)和监听器(Listener)区别

💖JavaEE中史上最全String类入门介绍文章,学习StringAPI这一篇即可


一、抽象类概述

                 类中如果有抽象方法,该类必须定义为抽象类

二、抽象类格式

                格式: 权限修饰符 abstract class 类名{};
                
                范例: public abstract class Animal {
                             代码体
                             };

三、抽象方法概述

             父类需要定义某个方法,但是不知道如何去实现这个方法,
             具体的功能应该让子类去实现这样的方法就可以定义为抽象方法

四、 抽象方法格式

              格式:  权限修饰符 abstract 返回值类型 方法名(参数列表);      
              
              范例:  public abstract   void run();

// 不能写私有private抽象方法,因为不能被子类进行重写

         抽象方法: 默认都是 public abstract 修饰的,可以省略不写     // void connect();
                                      
                    //public void aMethod();    省略abstract
                    
                    //void aMethod();           省略 public abstract
                  

🔥系列热门专栏🔥:
 
⚡《JavaEE进阶序列 | 从小白到工程师》系列文章⚡
 
⚡《JavaEE项目实战》系列文章⚡
 
⚡《JavaSwing项目合集》系列文章⚡
 
⚡《数据分析中的pandas》系列文章⚡


五、抽象类的特点

      * 抽象类无法创建对象
      
      * 有抽象方法,这个类一定是抽象类   (抽象类和抽象方法的关系)
  
      * 抽象类中不一定有抽象方法
      
      * 子类继承抽象类

             * 要么重写所有抽象方法

             * 要么子类也必须定义为抽象类     //如:public abstract class Dog extends Animal


【JavaEE进阶系列 | 从小白到工程师】JavaEE中的抽象类和抽象方法


六、抽象类的成员特点

   ●成员变量
                    可以是变量

                    也可以是常量
   ●构造方法

                  有构造方法,但是不能实例化(通过多态来进行实例化)

                  那么,构造方法的作用是什么呢?用于子类访问父类数据的初始化

   ●成员方法

                  可以有抽象方法:限定子类必须完成某些动作(限定子类为抽象类或者子类要进行重写)

                  也可以有非抽象方法:提高代码复用性(是用继承来保证的)


七、抽象类和普通类的区别


   * 抽象类:拥有所有能力,还有定义抽象方法的能力,"不能创建对象"
          

   * 普通类:"不能定义抽象方法"


八、案例

【JavaEE进阶系列 | 从小白到工程师】JavaEE中的抽象类和抽象方法


⭐代码演示

public abstract class Card {

    private  String id;
    private  double balance;

    public Card() {
    }

    public Card(String id, double balance) {
        this.id = id;
        this.balance = balance;
    }

    public abstract void pay(double money) ;




    public String getId() {
        return id;
    }


    public void setId(String id) {
        this.id = id;
    }


    public double getBalance() {
        return balance;
    }


    public void setBalance(double balance) {
        this.balance = balance;
    }


}

public class GoldenCard extends  Card{

    public GoldenCard() {
    }

    public GoldenCard(String id, double balance) {
        super(id, balance);
    }



    @Override
    public void pay(double money) {
        System.out.println("支付成功");
        System.out.println("原件:"+money);

        //打折价
        double paymoney=money*0.8;
        System.out.println("优惠价:"+paymoney);

        //余额
        double newBalance=getBalance()-paymoney;
        System.out.println("余额:"+newBalance);

        //更新余额为最新的金钱
        setBalance(newBalance);

    }



}


//测试类
public class Test {
    public static void main(String[] args) {


        GoldenCard ca=new GoldenCard("vip0001",10000);


        Scanner rd=new Scanner(System.in);
        System.out.println("请输入加油的金额:");
        double a=rd.nextDouble();
        ca.pay(a);


        System.out.println("请输入加油的金额:");
        a=rd.nextDouble();
        ca.pay(a);

    }
}

【JavaEE进阶系列 | 从小白到工程师】JavaEE中的抽象类和抽象方法


作者:KJ.JK

文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习

相关文章

暂无评论

暂无评论...