Остальные ответы правильны, но, на удивление, все это не учитывает теоретический аспект: типы возврата могут быть разными, но они могут ограничивать только тип, используемый в суперклассе из-за Принципа замещения Лискова .
Это супер просто: когда у вас есть «клиентский» код, который вызывает некоторый метод:
int foo = someBar.bar();
, то вышеприведенное должно работать (и возвращать что-то, что является int
независимо от того, какая реализация bar()
вызывается).
Значение: если есть подкласс Bar, который переопределяет bar()
, вам все равно придется возвращать то, что не нарушает «код вызывающего абонента», ,
Другими словами: предположим, что база bar()
должна возвращать int. Затем подкласс может возвращать short
- но не long
, потому что вызывающие абоненты будут иметь дело с значением short
, но не long
!
tar xzf file.tar.gz
буквы:
Можно использовать tar с "z" аргументом
tar xvfz mytar.tar.gz
Если у Вас нет tar гну, все еще возможно открыть файл в одноэтапном (хотя технически все еще две команды) использование канала
zcat file.tar.gz |tar x
Единственное, что я хотел бы добавить, это что z обычно работает только с GNU tar. Типичный UNIX tar не будет иметь этого по крайней мере, по моему опыту. - Джон Мар 16 в 16:19
Опция z хорошо работает и на моей OS-X 10.5.
Когда дело доходит до запоминания, я думаю, что легко думать о том, что вы хотите, а не только о некоторых буквах.
Затем вы обычно получаете эти две команды:
В Windows Попробуйте утилиту tartool http://tartool.codeplex.com/
Ее бесплатно, код имеет открытый исходный код и использует библиотеку SharpZipLib.
Заявление об ограничении ответственности: я являюсь автором этой утилиты.