第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

子類中重寫父方法。子方法不執(zhí)行任何操作

子類中重寫父方法。子方法不執(zhí)行任何操作

長風(fēng)秋雁 2024-01-05 10:14:57
我遇到了一些麻煩。我遵循了所有在線指南,展示了如何重寫子類中的父方法。我已經(jīng)完成了我被告知要做的所有事情,但我的子函數(shù)什么也沒做。我的 MainActivity(父級)課程:package com.example.flashcards;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    DatabseHelper DB = new DatabseHelper(this);    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        changeText();        changeText2();    };    public void changeText(){}    public void changeText2(){}        String [] columns = new String[] {                DatabseHelper.FLASHCARD_QUESTION,                DatabseHelper.FLASHCARD_ANSWER        };    @Override    public void onClick(View v) {    }}我的孩子班級(TextC)package com.example.flashcards;import android.view.View;import android.widget.Button;import android.widget.TextView;public class TextC extends MainActivity {    @Override    public void changeText() {        super.changeText();        final String[] revertText = {"H2O", "What elements does water consist of?"};        final TextView textChange = findViewById(R.id.flashcard1);        Button change = findViewById(R.id.answer1);        change.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                int random = (int) (Math.random() * revertText.length);                textChange.setText(revertText[random]);            }        });    }我的changeText()函數(shù)什么也不做。我沒有收到任何錯誤,所以我不知道我做錯了什么。我需要為子類創(chuàng)建一個 onCreate 方法嗎?但我正在擴展具有它的 MainActivity 。關(guān)于為什么我的方法重寫不起作用的任何想法?
查看完整描述

2 回答

?
蕪湖不蕪

TA貢獻1796條經(jīng)驗 獲得超7個贊

有了繼承和重寫的概念,您需要在子類中重寫 onCreate 函數(shù)。從該重寫的方法中,您可以調(diào)用 super.onCreate 或者可以從子類中執(zhí)行 this.chnageText 和 this.changeText2 。


否則,當(dāng)您調(diào)用 onCreate 函數(shù)時,它將僅從超類調(diào)用changeText 和changeText2。


在你孩子的班級里


@Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        this.changeText();

        this.changeText2();

    };


查看完整回答
反對 回復(fù) 2024-01-05
?
ibeautiful

TA貢獻1993條經(jīng)驗 獲得超6個贊

修改父類


package com.example.flashcards;


import androidx.appcompat.app.AppCompatActivity;


import android.os.Bundle;

import android.view.View;


public class MainActivity extends AppCompatActivity implements View.OnClickListener {


    DatabseHelper DB = new DatabseHelper(this);


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        //changeText(); freeze or remove these callings

        //changeText2();

    };

    public void changeText(){}

    public void changeText2(){}


}

并向您的子類添加一些代碼


package com.example.flashcards;


import android.view.View;

import android.widget.Button;

import android.widget.TextView;


public class TextC extends MainActivity {


 @Override

 protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    changeText(); 

    changeText2();

};


    @Override

    public void changeText() {

        super.changeText();

        final String[] revertText = {"H2O", "What elements does water consist of?"};


        final TextView textChange = findViewById(R.id.flashcard1);

        Button change = findViewById(R.id.answer1);


        change.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                int random = (int) (Math.random() * revertText.length);

                textChange.setText(revertText[random]);

            }

        });

    }


    public void changeText2() {

        super.changeText2();

        final String[] revertText = {"2,200° F", "How hot does lava get?"};


        final TextView textChange = findViewById(R.id.flashcard2);

        Button change = findViewById(R.id.answer2);


        change.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                int random = (int) (Math.random() * revertText.length);

                textChange.setText(revertText[random]);

            }

        });

    }

}

在上面的方法中沒有必要聲明changeText(); 和changeText2(); 在家長活動中。為了可重用性,我們可以使用抽象類和方法。


對您的家長活動進行一些更改,如下所示。


public abstract class MainActivity extends AppCompatActivity implements View.OnClickListener {



    @Override

    protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_main);

      changeText(); // they dont have default implimentation in parent so it will be invoked from child class where these methods implimented

      changeText2();

   };



public abstract void changeText(); //there is no default implimentation


public abstract void changeText2();


}

在子活動中,您必須實現(xiàn)這些方法。


public class TextC extends MainActivity {


 @Override

 protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    //changeText(); no need to call these methods bcz its already called in parent onCreate()

    //changeText2();

};


    @Override

    public void changeText() {

        super.changeText();

        final String[] revertText = {"H2O", "What elements does water consist of?"};


        final TextView textChange = findViewById(R.id.flashcard1);

        Button change = findViewById(R.id.answer1);


        change.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                int random = (int) (Math.random() * revertText.length);

                textChange.setText(revertText[random]);

            }

        });

    }


    public void changeText2() {

        super.changeText2();

        final String[] revertText = {"2,200° F", "How hot does lava get?"};


        final TextView textChange = findViewById(R.id.flashcard2);

        Button change = findViewById(R.id.answer2);


        change.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                int random = (int) (Math.random() * revertText.length);

                textChange.setText(revertText[random]);

            }

        });

    }

}


查看完整回答
反對 回復(fù) 2024-01-05
  • 2 回答
  • 0 關(guān)注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號