Java类和对象练习题
时间: 2024-12-28 14:19:18 浏览: 9
### 关于Java类与对象的练习题示例
#### 创建Vehicle和User类的应用程序
为了满足需求,可以设计`Vehicle`类来描述机动车的相关属性以及行为,并通过`User`作为测试类来进行实例化操作。
```java
// 定义Vehicle类表示机动车
class Vehicle {
private String brand;
private int year;
// 默认构造函数
public Vehicle() {
this.brand = "未知品牌";
this.year = 0;
System.out.println("默认构造器被调用了");
}
// 带参数的构造函数
public Vehicle(String brand, int year) {
this.brand = brand;
this.year = year;
System.out.println("带参构造器被调用了");
}
// 获取车辆信息的方法
public void getInfo() {
System.out.println("这是一辆" + (2023 - year) + "年的" + brand);
}
}
// 主类User用于创建Vehicle的对象并展示其功能
public class User {
public static void main(String[] args) {
// 使用无参构造方法创建对象
Vehicle v1 = new Vehicle();
v1.getInfo();
// 使用有参构造方法创建对象
Vehicle v2 = new Vehicle("Toyota", 2018);
v2.getInfo();
}
}
```
这段代码展示了如何定义一个简单的`Vehicle`类及其构造方法[^1]。同时,在`User`类中的`main()`方法里分别利用了两种不同的方式去初始化`Vehicle`类型的对象,并调用成员方法获取这些对象的信息。
#### 子类继承父类特性的例子
考虑给出的例子中涉及到了子类覆盖父类同名方法的情况:
```java
// 父类A
class A {
public void test(){
System.out.print("A");
}
}
// 子类B扩展自A
class B extends A{
@Override
void test(){
super.test(); // 调用父类版本的test()
System.out.print("B");
}
}
// 测试入口点
public class TestAB {
public static void main(String[] args){
B bInstance = new B();
bInstance.test(); // 输出 AB
}
}
```
这里说明了当存在父子关系时,可以通过`super`关键字访问父类未重写前的行为[^3]。
阅读全文