多重継承できない!? | Multiple inheritance | Android JAVA

スポンサーリンク
スポンサーリンク

JAVA多重継承

Android開発において用いるJAVAでは多重継承は許されていない。

public class MainActivity extends AppCompatActivity,classB { 

という書き方はできない。

初めてJAVAを扱うときには非常に納得がいかない、なぜできないんだ!と思いがちです。

慣れてくると、Androidアプリ開発では必要になるような局面はまったくありません。そしてむしろ、「多重継承が許されない」という決まりが理にかなっていて洗練されている、と感じるようになるかもしれません。そうなりますともう、JAVAの初心者は卒業かもしれませんね。

ただ、インタフェースを使って強引に実装する方法はあります。しかし、、あまりおすすめはしません。

視点を変えてみると、あっさりインタフェースも使うことなくできてしまうものです。

if文の統一

さてこれだけでは少ないですから、一つのコード

        if(switchFlagBoolean){ //Aの書き方
            //処理①            
        }else{
            //処理②
        }        
        if(switchFlagBoolean== true){ //Bの書き方
            //処理①
        }else{
            //処理② 
        }        
        if(!switchFlagBoolean){ //Cの書き方
            //処理②
        }else{
            //処理①  
        }

boolean型のswitchFlagBooleanを判定するA、B、Cの3パターンの書き方を用意しました。

いかがですか。

Cの書き方は論外!ですね。(ただしelseがなくfalse処理だけの場合を除く)

Bのパターンも、なんかわかりやすいですが人によっては「ないわー」と笑われてしまうかもしれません。どことなく素人臭いというか。。実際にBの書き方を見かけた際には呆れられていました。

やはりAの書き方でしょうか。

ここで大事なことはしっかり書き方を統一することです。Aで書いたり、Cで書いたり、なんていう書き方をしてはいけません。

変数名のルール

もう1点、switchFlagBoolean としましたが、私はこのように型名の末尾に型をフルで書きます。ハンガリアン記法以上にしっかりと。ハンガリアンは知らない人には通じませんが、この書き方はだれが見ても分かると思います。良い悪い別として私個人のルールです。AndroidStudioなら入力は楽ですしね。気取って短縮したりすると、後で自分が見た時や他人が見た時にわからなくなるだけで何も良いことはありませんのでご注意を。