在生活中,我们可以将“饮料”作为一个抽象的概念。饮料可以有很多种,比如可乐、咖啡、茶等等。
在Java中,我们同样可以将“饮料”定义为一个抽象类,它可以包含许多共同的属性和方法,比如名称、价格、制作方法等等。而每种具体的饮料,则可以继承抽象类“饮料”,并根据自己的特点实现具体方法。
举个例子,我们可以定义一个“咖啡”类,它继承“饮料”抽象类,并实现自己特有的方法“加糖加奶”。这样,在实际使用中,我们可以像这样编写代码:
Drink coffee = new Coffee();
coffee.setName("拿铁");
coffee.setPrice(20);
coffee.make();
这段代码就表示创建了一个名为“拿铁”的咖啡实例,价格为20元,同时调用了父类“饮料”的make()方法,也就是制作咖啡的具体方法。在生活中,我们也可以说,“我要一杯拿铁,加点糖和奶”,这就体现了抽象类“饮料”和具体实现类“咖啡”的作用。