java课程编写一个父类和一个子类并用父子类分别声明一个对象
时间: 2023-05-03 07:01:10 浏览: 64
可以使用继承的方式,让子类继承父类,然后在子类中实现自己的特有方法和属性,以此区分父类和子类的不同之处。创建一个父类和一个子类,然后实例化一个子类对象,这样就可以明显地看到一个对象是父类的实例还是子类的实例。
相关问题
Java怎么随机创建继承自一个父类的多个子类的对象
你可以使用Java中的反射机制来实现随机创建继承自一个父类的多个子类的对象。首先,你需要获取到父类的Class对象,然后使用getDeclaredClasses()方法获取到所有继承自该父类的子类的Class对象。接着,你可以使用随机数生成器来随机选取一个子类,并使用newInstance()方法创建该子类的实例。以下是示例代码:
```java
import java.util.Random;
public class Main {
public static void main(String[] args) throws Exception {
Class<?> parentClass = Parent.class;
Class<?>[] childClasses = parentClass.getDeclaredClasses();
Random random = new Random();
int randomIndex = random.nextInt(childClasses.length);
Object instance = childClasses[randomIndex].newInstance();
System.out.println(instance);
}
}
class Parent {
static class Child1 extends Parent {
@Override
public String toString() {
return "Child1";
}
}
static class Child2 extends Parent {
@Override
public String toString() {
return "Child2";
}
}
}
```
在上面的示例代码中,我们定义了一个父类Parent和两个继承自该父类的子类Child1和Child2。然后,我们使用反射机制获取到Parent类的所有子类,并使用随机数生成器随机选取一个子类,最后使用newInstance()方法创建该子类的实例。运行该程序,输出结果可能为"Child1"或者"Child2"。
java中允许定义一个子类的引用,指向父类对象
是的,Java中允许定义一个子类的引用,指向父类对象。这种行为称为向上转型。可以通过以下代码实现:
```
// 定义一个父类
class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
// 定义一个子类
class Cat extends Animal {
public void meow() {
System.out.println("Cat is meowing");
}
}
public class Main {
public static void main(String[] args) {
// 创建一个Cat对象
Cat cat = new Cat();
// 定义一个Animal引用,指向Cat对象
Animal animal = cat;
// 调用Animal的eat方法
animal.eat();
// 编译器不允许调用Cat的meow方法
// animal.meow();
// 可以将Animal引用转换为Cat引用
Cat cat2 = (Cat) animal;
cat2.meow();
}
}
```
在上面的代码中,定义了一个Animal类和一个Cat类,Cat是Animal的子类。在主方法中,创建一个Cat对象,并定义一个Animal引用指向Cat对象。调用Animal的eat方法时,实际上调用的是Cat的eat方法,因为Cat继承了Animal类,并重写了eat方法。由于Animal引用只能调用Animal类中的方法,因此不能直接调用Cat的meow方法。但是可以将Animal引用转换为Cat引用,从而调用Cat的meow方法。