@Override анатацый ў Android

Я пачатковец у Java і Android праграмавання. Пытанне, які я маю, што пасля серфінгу некалькі кніг, форум і вэб-сайтаў, у мяне няма дакладнага разумення таго, што робіць @Override анатацый. Я разумею, што гэта азначае, калі метад з'яўляецца больш ахопленым. але чаму гэта неабходна ў Андроід. Я бачу яго рэдка ў зыходным кодзе Java, але ўвесь час у АНДРОІД.

10

8 адказы

Вы можаце ўбачыць яго рэдка стары зыходны Java кода, таму што гэта даволі нядаўняе навіна - у той час як Android код больш свежы ў значнай ступені па азначэнні.

Гэта падстрахоўка, на самай справе - гэта кажа кампілятару, што вы спрабуе , каб адмяніць нешта - так, калі ласка, пацярпець няўдачу, калі метад не перавызначыць ўсе, напрыклад, з-за памылкі друку ў імя. Гэта так жа, як перавызначыць з'яўляецца ключавым словам, якое з'яўляецца часткай дэкларацыі метады ў C #. Гэта дапаможа вам быць дакладна пра тое, што вы робіце, што дапамагае пазбегнуць памылак, а таксама робіць ваш код больш зразумелым для будучых чытачоў.

21
дададзена
Дзякуй. Я узяў нешта ад кожнага адказу тут. Я і новы стэк, таму, калі ласка, не крыўдуйце, калі я не падзякаваць кожны адказ. Я пайшоў прама да інфармацыі Java і паглядзеў абстрактныя класы і polymorhphism. Для таго, каб перабіраць маё разуменне, пры выкліку OnCreate (), ён проста мае асноўныя кампаненты для стварэння асноўнай дзейнасці, якая выкарыстоўваецца АС. калі @overide ўваходзіць у гульню, yuour у асноўным над верхам OnCreate (), каб зрабіць гэта рабіць тое, што вы задумалі ў вашай праграме. Я думаю, што я зрабіў, што складаней, чым гэта павінна быць, але, па меншай меры, я зрабіў гэта!
дададзена аўтар JBlaza, крыніца

Ну, калі вы разумееце, асноўныя з @Override анатацыі гэта проста метададзеныя, якія запаўняюць дзве мэтаў:

    <�Літый> <�р> Апішыце, што метад гэта быць пераазначэнне, таму што ён быў вызначаны ў інтэрфейсе або пашыраны клас </р>
  • Дапамагае правільна ідэнтыфікаваць, які метад лакальна абвешчаныя і якія падмяняюць, так як у андроіда вы, верагодна, распасціраецца ад фрагмента, дзейнасці, паслуг, BroadcastReceiver і г.д. гэта добрая практыка, якая зробіць ваш код больш зразумела. </р>

Што ж тычыцца пытання, што вы не бачыце яго ў стылі Java, гэта не толькі таму, што гэта даволі новая асаблівасць (не тое, што новага з 2005), а таму, што вы не перавызначыць метад, які шмат у Java, па меншай меры не ў свінг або SWT, часцей за ўсё іх можна знайсці ў TableModel ці калі гэта Servlet ў пашыраных HTTPServlet класаў

7
дададзена

because you override a lot of methods , example ;when you create your Activity ( which extends Activity ) you need to override the method onCreate( Bundle savedInstanceState) to initialize your Activity , and so on , every time you override a method from a mother Class , eclipse add the annotation @override

2
дададзена

@Override means that you want to re-define function from superclass in child class. Read more about abstract methods, classes, polymorphism.

2
дададзена

Я нічога не ведаю пра Android-праграмаванні, але @ Override-анатацый выкарыстоўваецца, каб паказаць, што метад перавызначаць метад supeclass (або рэалізуе метад інтэрфейсу ў Java 1.6). Акрамя чыста documentational сэнсу анатацый, па меншай меры, Eclipse, таксама папярэджвае Вас (або пазначае яго памылку, у залежнасці ад налад), калі метад не перавызначыць любы метад суперкласса, калі вы думаеце, што робіць (тым самым прадухіляючы некаторыя хвалюе памылку -hunting). Можа Android-кампілятар проста па змаўчанні патрабуе, каб усе вярхоўныя метады павінны быць анатаваны з @Override.

1
дададзена

@override means you are borrowing methods from available class and are not defined by the programmer.

1
дададзена
Паглядзіце на прыняты адказ
дададзена аўтар raam86, крыніца

Яна не патрэбна як для Java і Android. Вы бачыце, што часта ў АНДРОІД праграмы, таму што зацьменне дадае яго аўтаматычна, калі вы ствараеце новы від дзейнасці, спосаб і г.д. Пры выдаленні анатацыі нічога @Override ня Appen.

0
дададзена

@overide гэта нешта накшталт віртуальнага метаду ў C ++, OnCreate метад андроіда больш падобны на віртуальны BOOL OnInit() у wxWidget, гэты метад выкарыстоўваецца андроіда (OnCreate), каб пабудаваць свой GUI так, таму што GUI адрозніваецца ад таго, хто з'яўляецца праграмаванні код у OnCreate змены таксама, таму мы павінны @overide яго. Мы @overide любога метаду, які выкарыстоўваецца ў бібліятэцы і што мы хочам наладзіць. Oncreat() як OnInit() з'яўляецца метадам, які мы хочам наладзіць таксама.

0
дададзена