abstract案例练习笔记

abstract案例练习

系统需求:某加油站推出了2种支付卡,一种是预存10000的金卡,后续加油享受8折优 惠,另一种是预存5000的银卡,后续加油享受8.5折优惠。请分别实现2种卡片进入收银系统后的逻辑,卡片需要包含主人名称,余额,支付功能。

分析实现:
* 创建一张卡片父类:定义属性包括主人名称、余额、支付功能(具体实现交给子类)创建一张白金卡类:重写支付功能,按照原价的8折计算输出。
* 创建一张银卡类:重写支付功能,按照原价的8.5折计算输出。

public class Test {
   
    public static void main(String[] args) {
   
        Godcard s = new Godcard();
        s.setBalance(10000);
        s.setName("子杰");
        s.pay(200);
    }
}

=======================================================
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java中的抽象类是一种特殊的类,它不能被实例化,只能被继承。抽象类可以包含抽象方法,这些方法只有声明没有实现。抽象类的子类必须实现这些抽象方法。多态性可以通过继承和抽象类来实现,因为子类可以重写父类的方法。 ### 回答2: Java中的Abstract类是一个抽象类,它不能被实例化,只能被继承。这种抽象类的存在,提供了一种良好的代码重用方式,让多个类能够共享相同的方法和属性。 在Java的继承机制中,子类可以使用父类的方法和属性。当我们想要在不同的子类中共享一些方法和属性时,我们可以将这些方法和属性放在父类中,然后在子类中通过继承的方式来获取这些方法和属性。但这并不总是适用的,有时我们希望子类中的方法和属性是不同的,但仍然需要体现一定的关联性,这时候就需要用到Abstract类。 在Java中,Abstract类一般代表着一种“半成品”,即没有实现完整的类。它的子类必须实现抽象类中的所有抽象方法,否则子类也需要被声明为Abstract类。 Abstract类中可以有抽象方法和具体方法。抽象方法只有方法名和参数列表,没有方法体;具体方法则有方法体并且可以被子类直接调用。抽象方法的目的是为了约束子类必须实现这个方法,而具体方法则是为了为子类提供一些默认的行为。 下面是一个抽象类的示例: abstract class Animal { private int age; public abstract void makeSound(); public void setAge(int age) { this.age = age; } } 这个抽象类中有一个抽象方法makeSound()和一个具体方法setAge()。这个抽象类代表着一个动物,它的子类必须实现makeSound()方法,但可以直接使用setAge()方法。 下面是一个抽象类的子类的示例: class Dog extends Animal { @Override public void makeSound() { System.out.println("汪汪汪"); } } 这个子类Dog继承了Animal,并重写了makeSound()方法。Dog类实现了Animal类的所有抽象方法,因此它不再需要被声明为Abstract类。 总之,Abstract类是Java中非常常用的一种类,它的特点是不能被实例化,只能被继承,并且子类必须实现所有的抽象方法。Abstract类的存在可以提高代码的重用性,帮助我们更好地组织代码,提高代码的可读性和可维护性。 ### 回答3: Java继承和多态是Java中的重要概念,其中抽象类是面向对象编程中的关键概念。抽象类是一种特殊类型的类,它不能被直接创建,只能被继承。抽象类旨在为子类提供通用代码和方法,但其中一些方法只需要定义,而不需要实现。这些未实现的方法称为抽象方法。 抽象类的作用是为具有相似特征的类提供一个模板。抽象类中的抽象方法提供了一个通用的接口,而派生类则可根据自己的需求进行具体实现。这种设计模式可以降低代码的重复性,提高代码的重用性和可维护性。 定义一个抽象类时,需要使用“abstract”关键字来标记类和方法。抽象类中必须至少有一个抽象方法,且该方法不能实现任何具体代码。子类必须实现这个抽象方法才能被实例化。 抽象类中的方法可以是普通方法,也可以是静态方法。普通方法是指那些不包含抽象方法的方法,可以被继承和重写。静态方法是指在类加载时就已经存在的方法,可以通过类名直接调用,不需要实例化。 Java的多态是指同一个方法可以在不同的对象上产生不同的行为。多态的实现方式包括方法重载和方法重写。抽象类和接口可以为多态提供基础。子类继承抽象父类后,可以重写抽象方法并根据自己的需求进行具体实现。在程序运行时,父类类型的变量可以引用子类类型的对象,这就产生了多态。对于同样的方法调用,不同的对象会产生不同的行为。 总的来说,Java继承和多态的实现是面向对象编程中的重要部分,而抽象类是实现这一目标的关键概念之一。抽象类为具有相似特征的类提供了一个通用的模板,而子类则可以根据自己的需求进行具体实现。抽象类还可以为多态提供基础,实现同样的方法调用时产生不同的行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值