- PVSM.RU - https://www.pvsm.ru -
Часть 1
List<Integer> list;
list = new ArrayList<Integer>(); //ArrayList и LinkedList реализуют интерфейс List, поэтому мы можем так делать
list = new LinkedList<Integer>();
list = new String(); //Ошибка при компиляции
public class Fruit {
public void eat(){
System.out.println("NomNomNom");
}
}
class Apple extends Fruit{
public void grow(){
System.out.println("I'm growing");
}
public static void main(String[] args) throws InterruptedException {
Fruit fruit;
fruit = new Apple();
fruit.eat(); //Метод eat описан в суперклассе, мы можем к нему обращаться
fruit.grow(); //Ошибка! Метод grow специфичен для класса Apple, поэтому мы не можем обращаться к нему через переменную типа Fruit
}
}
public class Fruit {
public void eat(){
System.out.println("NomNomNom");
}
}
class Apple extends Fruit{
public void grow(){
System.out.println("I'm growing");
}
public void eat(){
System.out.println("NomAppleNom");
}
public void test(){
eat();//Вызовет переопределенный метод
super.eat();//Вызовет метод суперкласса
}
}
public class Fruit {
public int eat(){
byte b = 127;
return b; //Компилятор автоматически расширит byte b до int.
}
public int grow(){
long l = 42;
return l; //Ошибка! Несмотря на то что int вполне может представить число 42 без потерь,
//нам необходимо использовать явное приведение return (int) l;
}
}
public class Fruit {
public Fruit(String str){
System.out.println("Fruit constructor");
}
}
class Apple extends Fruit{
public Apple(){
super("apple");
System.out.println("Apple's constructor");
}
}
public class GreenApple extends Apple{
public GreenApple(){
System.out.println("GreenApple's constructor");
};
Вывод:
Fruit constructor
Apple's constructor
GreenApple's constructor
}
Автор: jstudent
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/13747
Нажмите здесь для печати.