使用java例举出生活中适合使用面向对象中继承多态来描述的问题,包括问题描述,编程相应的类,编写测试程序,代码尽量短
时间: 2024-05-13 21:18:04 浏览: 76
问题描述:假设有一个电子产品销售系统,其中有手机、电脑等多种产品,每种产品都有自己的品牌、型号、价格等属性,同时也有共同的属性和方法,例如名称、介绍、销售等。为了方便管理和维护,需要使用面向对象中的继承和多态特性来编写相应的类。
编程相应的类:
```
//产品类
class Product {
private String name;
private String introduction;
private double price;
public Product(String name, String introduction, double price) {
this.name = name;
this.introduction = introduction;
this.price = price;
}
public String getName() {
return name;
}
public String getIntroduction() {
return introduction;
}
public double getPrice() {
return price;
}
public void sell() {
System.out.println("该产品已售出!");
}
}
//手机类
class Phone extends Product {
private String brand;
private String model;
public Phone(String name, String introduction, double price, String brand, String model) {
super(name, introduction, price);
this.brand = brand;
this.model = model;
}
public String getBrand() {
return brand;
}
public String getModel() {
return model;
}
}
//电脑类
class Computer extends Product {
private String brand;
private String model;
public Computer(String name, String introduction, double price, String brand, String model) {
super(name, introduction, price);
this.brand = brand;
this.model = model;
}
public String getBrand() {
return brand;
}
public String getModel() {
return model;
}
}
```
编写测试程序:
```
public class TestProduct {
public static void main(String[] args) {
Phone phone = new Phone("iPhone X", "苹果手机", 7999.0, "Apple", "iPhone X");
phone.sell(); //该产品已售出!
System.out.println(phone.getName() + " " + phone.getBrand() + " " + phone.getModel() + " " + phone.getPrice());
Computer computer = new Computer("MacBook Pro", "苹果电脑", 14999.0, "Apple", "MacBook Pro 16");
computer.sell(); //该产品已售出!
System.out.println(computer.getName() + " " + computer.getBrand() + " " + computer.getModel() + " " + computer.getPrice());
}
}
```
输出结果:
```
该产品已售出!
iPhone X Apple iPhone X 7999.0
该产品已售出!
MacBook Pro Apple MacBook Pro 16 14999.0
```
代码解释:在这个例子中,我们定义了一个 Product 类作为基类,然后分别定义了 Phone 和 Computer 类作为其子类,继承了 Product 类的属性和方法。Phone 和 Computer 类分别增加了自己的品牌和型号属性,并且调用了基类的构造函数。在测试程序中,我们创建了 Phone 和 Computer 对象,并且调用了它们各自的属性和方法。由于它们是同一个基类的不同对象,因此可以使用多态特性来方便地管理和维护这些对象。
阅读全文