interface Displayable { public void display0();}class Notification implements Displayable { private String message; public Notification(String message) { this.message = message; } @Override public void display0() { System.out.println("通知内容:" + message); }}class Car implements Displayable { private int fuelLevel; public Car(int fuelLevel) { this.fuelLevel = fuelLevel; } @Override public void display0() { System.out.println("汽车油量:" + fuelLevel); }}class Advertisement implements Displayable { private String message; public Advertisement(String message) { this.message = message; } @Override public void display0() { System.out.println("广告消息:" + message); }}public class DisplayableTest { public static void main(String[] args) { Displayable notification = new Notification("这是一条通知"); Displayable car = new Car(30); Displayable advertisement = new Advertisement("今天特价"); notification.display0(); car.display0(); advertisement.display0(); }}
时间: 2023-06-07 17:12:03 浏览: 99
您的问题是,这段代码中的 Displayable 接口和三个实现类是如何工作的?
这段代码中,Displayable 接口用于表示可以展示(display)其内容的对象。三个实现类分别是通知(Notification)、汽车(Car)和广告(Advertisement),它们都实现了 Displayable 接口,并且实现了 display0() 方法来打印出各自的信息。在 DisplayableTest 类的 main 方法中,创建了三个对象,分别是一个 Notification 对象、一个 Car 对象和一个 Advertisement 对象,并分别调用了它们的 display0() 方法来展示它们的内容。这样的设计使得我们可以以相同的方式处理不同的对象,同时也可以方便地扩展新的展示对象。
相关问题
fnd_key_flex.define( BLOCK => 'CATEGORY_BOOK', FIELD => 'GENERAL_FUND_ACCT_FLEX', APPL_SHORT_NAME => 'SQLGL', CODE => 'GL#', NUM => ':category_book.ACCT_STRUCTURE', ID => 'GENERAL_FUND_ACCOUNT_CCID', VALIDATE => 'FULL', DISPLAYABLE => 'ALL', REQUIRED => 'N', UPDATEABLE => '', VRULE => '\nSUMMARY_FLAG\nI\n' || 'NAME=FLEX-Parent not allowed\nN\0' || 'GL_GLOBAL\nDETAIL_POSTING_ALLOWED\NI\n' || 'NAME=GL posting not allowed\nY', TITLE => :parameter.GENERAL_FUND_ACCT , COPY => 'CATEGORY_BOOK.GENERAL_FUND_ACCT\nGL_ACCOUNT\0');什么意思
这段代码是一个 PL/SQL 中的一个函数或者存储过程中的一段参数定义。它定义了一个field 的属性,其中括了该 Flexfield 的 BLOCK 名称、FIELD 名称、应用程序的名称、代码、结构等信息。VRULE 参数定义了这个 Flexfield 的验证规则,例如 SUMMARY_FLAG 的值为 I,表示该 Flexfield 是一个摘要级别的信息,而不是明细级别的信息。同时,VRULE 参数还定义了一些不合法的输入值,比如 FLEX-Parent 不允许等。TITLE 参数指定了该 Flexfield 的标题,COPY 参数指定了该 Flexfield 的复制信息。
用Java定义一个接口,其中包含-一个display0方法用于显示信息:通知类、汽车类、广告类均要实现该接口,以显示“通知内容”、“汽车油量”、“广告消息”.试编程实现并测试类的设计。创建的对象用接口引用,并通过接口引用变量执行display( )方法。
好的,下面是 Java 实现代码:
```java
// 定义接口
interface Displayable {
void display();
}
// 实现通知类
class Notification implements Displayable {
private String content;
public Notification(String content) {
this.content = content;
}
@Override
public void display() {
System.out.println("通知内容:" + content);
}
}
// 实现汽车类
class Car implements Displayable {
private double fuel;
public Car(double fuel) {
this.fuel = fuel;
}
@Override
public void display() {
System.out.println("汽车油量:" + fuel);
}
}
// 实现广告类
class Advertisement implements Displayable {
private String message;
public Advertisement(String message) {
this.message = message;
}
@Override
public void display() {
System.out.println("广告消息:" + message);
}
}
// 测试类
public class Test {
public static void main(String[] args) {
// 创建对象并用接口引用
Displayable d1 = new Notification("今天天气不错!");
Displayable d2 = new Car(50.0);
Displayable d3 = new Advertisement("新品上市,限时优惠!");
// 调用接口方法
d1.display();
d2.display();
d3.display();
}
}
```
运行以上代码,输出结果为:
```
通知内容:今天天气不错!
汽车油量:50.0
广告消息:新品上市,限时优惠!
```
你可以将以上代码复制到 Java 环境中执行一下,看看效果。
阅读全文