Поток System.in — экземпляр абстрактного класса. Как такое возможно?
Во-первых создать экземпляр абстрактного класса можно, необходимо только реализовать абстрактные методы:InputStream is = new InputStream() {
	@Override public int read() throws IOException {
		return 123;
	}
};
System.out.println(is.read());//123Во-вторых у InputStream'а целая гора наследников. Я не знаю как там формулировал Шилдт, но он наверняка не имел ввиду что System.in это именно экземпляр InputStream'а.В-третьих вы сами можете(должны) это проверить: System.out.println(System.in);//java.io.BufferedInputStream@5577140b
Т.е. System.in конкретно на моей машине в моей jvm это экземпляр BufferedInputStream.PS больше пишите код. На одну прочитанную страницу книги должна быть написана одна страница кода.
В таких случаях сразу открывайте доки. 
docs.oracle.com/javase/7/docs/api/java/io/InputStr...
И смотрите эту строчку: Direct Known Subclasses:
AudioInputStream, ByteArrayInputStream, FileInputStream, FilterInputStream, InputStream, ObjectInputStream, PipedInputStream, SequenceInputStream, StringBufferInputStream
Также, как верно заметил FoxInSox, класс может быть легко  инстанцирован. 
Либо иметь реализации в каких-то сторонних библиотеках.