Вот что выводит
Я - солидный кошак по имени Василий
Я - милая кошечка по имени Мурочка
Я - милая кошечка по имени Кисюлька
Я уличный кот pirat
java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at com.javarush.task.task14.task1404.Solution.main(Solution.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.inv
Что за линию он не нашёл ? package com.javarush.task.task14.task1404;
/*
Коты
*/
import java.util.Scanner;
public class Solution {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
String a ;
do{
a = scanner.nextLine();
Cat cat = CatFactory.getCatByKey(a);
System.out.println(cat.toString());
}while(!(a.equals("")));
scanner.close();
}
static class CatFactory {
static Cat getCatByKey(String key) {
Cat cat = null;
if ("vaska".equals(key)) {
cat = new MaleCat("Василий");
} else if ("murka".equals(key)) {
cat = new FemaleCat("Мурочка");
} else if ("kiska".equals(key)) {
cat = new FemaleCat("Кисюлька");
} else {
cat = new Cat(key);
}
return cat;
}
}
static class Cat {
private String name;
protected Cat(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public String toString() {
return "Я уличный кот " + getName();
}
}
static class MaleCat extends Cat {
MaleCat(String name) {
super(name);
}
public String toString() {
return "Я - солидный кошак по имени " + getName();
}
}
static class FemaleCat extends Cat {
FemaleCat(String name) {
super(name);
}
public String toString() {
return "Я - милая кошечка по имени " + getName();
}
}
}