我正在学习Java,无法理解继承的一些技巧。例子:
我们有一个班级Animal
;
我们有一个类Cat
,扩展Animal
;
我们有一个类Tiger
,扩展Cat
;
问题:
1)为什么Cat使用Tigers方法?请参阅下面的“make_a_sound”方法示例。它来自 Tiger,但 Cat 可以使用它。
2)为什么Cat看不到Tiger的任何属性?猫可以使用老虎的方法“make_a_sound”,但看不到它的属性......很奇怪。
谢谢,根纳迪
public class Solution {
public static void main(string[] args) {
Cat cat = new Tiger();
// The result is from Tiger class: A tiger says RRRRR & new tiger property
// Why???
cat.make_a_sound();
// Only cat's and Animal's properties are visible. No Tiger's properties
System.out.println(cat.this_is_a_cat);
}
// Base class
public class Animal {
public String this_is_an_animal = "Animal";
public void make_a_sound() {
System.out.Printf("I'm an animal");
}
}
// Extends base class
public class Cat extends Animal {
public String this_is_a_Cat = "Hi, I'm a cat";
public void make_a_sound() {
System.out.Printf("A cat says meey");
}
}
// Extends prev. class
public class Tiger extends Cat {
public String this_is_a_Tiger = "Tiger";
public void make_a_sound() {
System.out.Println("A tiger says RRRRRR");
this_is_a_Tiger = "new tiger property";
System.out.println(new_tiger_property);
}
}
}
Smart猫小萌
白猪掌柜的
慕码人8056858
相关分类