直接代码:封装类:
package com.example.hujhguiyhiu.test_demo.DaHuaMoShi_1; /** * Created by hujhguiyhiu on 2016/8/16. */ public class FengZhuang { private double danJia; private int shuLiang; public void setDanJia(double danJia) { this.danJia = danJia; } public void setShuLiang(int shuLiang) { this.shuLiang = shuLiang; } public double getDanJia() { return danJia; } public int getShuLiang() { return shuLiang; } //虚方法,主要就是在继承者们那进行逻辑运算 public double yunSuan() { return 0; }}
逻辑代码类:
package com.example.hujhguiyhiu.test_demo.DaHuaMoShi_1; import android.app.Activity; import android.os.Bundle; import android.os.PersistableBundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import com.example.hujhguiyhiu.test_demo.R; import java.util.ArrayList; import java.util.List; /** * Created by hujhguiyhiu on 2016/8/16. */ public class DHMS_Activity1 extends AppCompatActivity { private FengZhuang fz; private EditText editText1; private EditText editText2; private Button bt1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dhms1); editText1 = (EditText) findViewById(R.id.et1); editText2 = (EditText) findViewById(R.id.et2); bt1 = (Button) findViewById(R.id.bt1); //类型 bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { fz = YunSuanIpm.onCreate(YunSuanIpm.TYPE_SY); fz.setDanJia(Double.valueOf(editText1.getText().toString())); fz.setShuLiang(Integer.valueOf(editText2.getText().toString())); double t = fz.yunSuan(); } }); } }主程序类:package com.example.hujhguiyhiu.test_demo.DaHuaMoShi_1; import android.util.Log; /** * Created by hujhguiyhiu on 2016/8/16. */ public class YunSuanIpm { public static final String TYPE_SY = "SY"; public static final String TYPE_ZLX = "ZLX"; public static FengZhuang onCreate(String shenY) { FengZhuang fz = null; switch (shenY) { case TYPE_SY: fz = new syYunSua(); break; case TYPE_ZLX: fz = new zlxYunSua(); break; } return fz; } public static class syYunSua extends FengZhuang { @Override public double yunSuan() { double t = 0, danJia = getDanJia(); int shuLiang = getShuLiang(); t = danJia * shuLiang; Log.d("test", "sy总计:" + t); return t; } } public static class zlxYunSua extends FengZhuang { @Override public double yunSuan() { double t = 0, danJia = getDanJia(); int shuLiang = getShuLiang(); t = danJia * shuLiang; Log.d("test", "zlx总计:" + t); return t; } } }主要的就是封装类中虚方法。。。