2014-09-30 3 views
-2

Я изучаю Java, используя учебник на странице Oracle.Методы переопределения и скрытия

Спасибо,

public class Animal { 
    public static void testClassMethod() { 
     System.out.println("The static method in Animal"); 
     } 
     public void testInstanceMethod() { 
     System.out.println("The instance method in Animal"); 
     } 
    } 

    public class Cat extends Animal { 
    public static void testClassMethod() { 
     System.out.println("The static method in Cat"); 
    } 
    public void testInstanceMethod() { 
     System.out.println("The instance method in Cat"); 
    } 

    public static void main(String[] args) { 
     Cat myCat = new Cat(); 
     Animal myAnimal = myCat; 
     Animal.testClassMethod(); 
     myAnimal.testInstanceMethod(); 
    } 
} 

Может кто-нибудь, объясните мне, в чем смысл этого заявления:

животных myAnimal = myCat;

Спасибо,

+1

Возможно, если вы действительно запустили код, который вы понимаете из вывода консоли. – user1071777

+2

Что вы ** ** ** думаете, что это значит? Дайте нам все возможное. –

+2

Добро пожаловать в переполнение стека. Пожалуйста, найдите время, чтобы ознакомиться с файлом переполнения стека [файл справки] (http://stackoverflow.com/help), который поможет вам понять, какие вопросы подходят для этого сайта. Этот сайт призван помочь вам получить ответы на * конкретные вопросы программирования *, в отличие от предоставления учебной помощи. – MarsAtomic

ответ

0

Cat расширяет Animal, верно? Итак, каждый Cat IS-A Animal. Это означает, что каждый экземпляр Cat также является экземпляром Animal. Поэтому вы можете назначить myCat переменной myAnimal, которая имеет тип Animal.