Files
oop/lab/lab5/Question7/Start.java
2022-03-19 17:47:52 +08:00

46 lines
1.4 KiB
Java

/**
* Answer to question.
*
* # Question 4
*
* Q: Now that the Student class uses an animal as pet, can you still use a cat
* object as the pet of a student? Why or why not?
*
* A: Yes, you can. The Student class has a method getPet() that returns the pet
* which is Animal type.
*
* Q: Can you now use a dog object as the pet of a student? Why or why not?
*
* A: Yes, you can. But only attributes and methods definded in the Animal class
* can be accessed. When you do so, the Dog object will be converted to an
* Animal object. Assign a child object to a parent object is called upcasting
* in Java. Upcasting is implicit.
*
* # Question 5
*
* Q: Where are the name and weight of the bird stored? How?
*
* A: The Bird class has a private instance variable name and weight which are
* inherited from the Animal class.
*
* Q: Suppose a student has a bird as a pet. Can the student get the altitude of
* his pet?
*
* A: No. The student's pet is an Animal object. The Bird object is a subclass
* of Animal. getAltitude is only avaliable in Animal object. When we assign a
* Bird to an Animal variable, upcasting happend and only attributes and methods
* in the super class can be accessed.
*
*/
public class Start {
public static void main(String[] args) {
Cat.testCat();
Dog.testDog();
Student.testStudent();
Animal.testAnimal();
Bird.testBird();
Chicken.testChicken();
LivingThing.testLiving();
}
}