Java oop 代碼7:A1,A2繼承A且B1,B1繼承B且A,B繼承C的商品類(lèi),人物模型類(lèi)兩道題

1.聲明一個(gè)商品類(lèi)父類(lèi),擁有編號(hào),名稱(chēng),和價(jià)格三個(gè)屬性和?一個(gè)jiazhi()方法,在構(gòu)造方法中對(duì)其進(jìn)行賦值,打印所有商品?都有自己的價(jià)值。聲明子類(lèi)水果類(lèi),繼承自商品類(lèi),重寫(xiě)jiazhi?方法,打印水果的價(jià)值是補(bǔ)充營(yíng)養(yǎng),聲明電子類(lèi),繼承自商品?類(lèi),重寫(xiě)jiazhi方法,打印電子類(lèi)的價(jià)值是方便生活,聲明蘋(píng)?果,香蕉,vivo手機(jī),小米手機(jī),實(shí)例化各自的對(duì)象并打印其?jiazhi方法?/*命名要有具體的意義,比如用拼音或英文便于別人與自己看懂,查錯(cuò)。以上是使得邏輯上更簡(jiǎn),更清晰。使得邏輯上或其他方面更簡(jiǎn),更清晰就是Java oop等方法思想的作用好處。我寫(xiě)代碼等事的原則方法是能簡(jiǎn)則簡(jiǎn)的原則。*/
package a;
public class Student {
public static void main(String[] args) {
pingGuo p=new pingGuo("1","蘋(píng)果", 1.5);
p.jiazhi();
xiangJiao x=new xiangJiao("2","香蕉", 1.6);
x.jiazhi();
boluo b=new boluo("3","菠蘿", 1.7);
b.jiazhi();
boluo h=new boluo("3","華為手機(jī)", 3000);
h.jiazhi();
? }
}
class shangPin{
public static String bianHao;
public String name;
public static double jaGe;
public shangPin(String bianHao,String name,double jaGe){
this.bianHao=bianHao;
this.jaGe=jaGe;
this.name=name;
}
??
public void jiazhi(){
System.out.println(this.name+"價(jià)格為"+this.jaGe);
System.out.println(this.name+"編號(hào)為"+this.bianHao);
System.out.println(this.name+"名字為"+this.name);
}
}
?
class shuiGuo extends shangPin{
public shuiGuo(String bianHao, String name, double jaGe) {
super(bianHao, name, jaGe);
// TODO Auto-generated constructor stub
}
public String waiGuan;
public void jiazhi(){
System.out.println(this.name+"價(jià)格為"+this.jaGe);
System.out.println(this.name+"編號(hào)為"+this.bianHao);
System.out.println(this.name+"名字為"+this.name);
}
}
class dianzi extends shangPin{
public dianzi(String bianHao, String name, double jaGe) {
super(bianHao, name, jaGe);
// TODO Auto-generated constructor stub
}
public String waiGuan;
public void jiazhi(){
System.out.println(this.name+"價(jià)格為"+this.jaGe);
System.out.println(this.name+"編號(hào)為"+this.bianHao);
System.out.println(this.name+"名字為"+this.name);
}
}
class pingGuo extends shuiGuo{
public pingGuo(String bianHao,String name,double jaGe) {
super(bianHao,name, jaGe);
System.out.println(this.name+"價(jià)值為令人聰明");
}
}
??
class xiangJiao extends shuiGuo{
public xiangJiao(String bianHao,String name,double jaGe) {
super(bianHao,name,jaGe);
System.out.println(this.name+"價(jià)值為令人通便");
}
}
class boluo? extends shuiGuo{
public boluo (String bianHao,String name,double jaGe) {
super(bianHao,name,jaGe);
System.out.println(this.name+"價(jià)值為令人爽快");
}
}

//2.聲明一個(gè)人物模型類(lèi),擁有人物名稱(chēng),攻擊力,防御力,和 技能(查詢(xún)自身數(shù)據(jù)),
//聲明一個(gè)戰(zhàn)士類(lèi)繼承人物模型類(lèi),戰(zhàn) 士擁有自己的技能1(技能傷害為100+自身攻擊力的120%),
//聲 明法師類(lèi)繼承自人物模型類(lèi),法師擁有自己的兩個(gè)技能,技能1
//(技能傷害為200+自身攻擊力80%),
//技能2(自身防御力提升 20%),實(shí)例化三個(gè)英雄,分別調(diào)用自己的每個(gè)技能
package a;
public class Student {
public static void main(String[] args) {
liuBei l=new liuBei("劉備",100,100);
l.zhi();
l.faShiJiNengYi();
l.faShiJiNengEr();
guanYu g=new guanYu ("關(guān)羽",101,102);
g.zhi();
g.jiNengY();
zhangFei z=new zhangFei("張飛",104,105);
z.zhi();
z.jiNengY();
? }
}
class renWuMoXing{
public String name;
public double gongJiLi;
public double fangYuLi;
public renWuMoXing(String name,double gongJiLi,double fangYuLi){
this.name=name;
this.gongJiLi=gongJiLi;
this.fangYuLi=fangYuLi;//有紅色部分才可以接收到數(shù)據(jù),并調(diào)用
}
public void zhi(){
System.out.println(this.name+"攻擊力為"+gongJiLi);//this用
System.out.println(this.name+"防御力"+fangYuLi);
}
}
?
class zhanShi extends renWuMoXing{
public zhanShi(String name,double gongJiLi,double fangYuLi) {
super(name, gongJiLi,fangYuLi);
// TODO Auto-generated constructor stub
}
}
class faShi extends renWuMoXing{
public faShi(String name,double gongJiLi,double fangYuLi) {
super(name, gongJiLi,fangYuLi);
/*TODO Auto-generated constructor stub(指的是自動(dòng)生成的構(gòu)造函數(shù)。 這串英文在使用eclipse這樣的Java集成開(kāi)發(fā)環(huán)境時(shí)開(kāi)發(fā)環(huán)境自動(dòng)幫使用者寫(xiě)的,意思是告訴使用者這些代碼是自動(dòng)生成的,不是自己編寫(xiě)的,起到一個(gè)提示的作用,實(shí)際意義不大。)*/
}
}
class liuBei extends faShi{
public liuBei(String name,double gongJiLi,double fangYuLi) {
super(name, gongJiLi,fangYuLi);
}
public void faShiJiNengYi(){
System.out.println(this.name+"法師技能一名:王劍? ,? 技能傷害:"+(200+0.8*gongJiLi));
}
public void faShiJiNengEr(){
System.out.println(this.name+"法師技能二名:王權(quán)? ,? 防御力提升"+fangYuLi*0.2);
}
}
??
?
class guanYu extends zhanShi{
public guanYu(String name,double gongJiLi,double fangYuLi) {
super(name, gongJiLi,fangYuLi);
}
public void jiNengY(){
System.out.println(this.name+"戰(zhàn)士技能一名:將刀? ,? 技能傷害:"+(this.gongJiLi*1.2+100));
}
}
class zhangFei extends zhanShi{
public zhangFei(String name,double gongJiLi,double fangYuLi) {
super(name, gongJiLi,fangYuLi);
}
public void jiNengY(){
System.out.println(this.name+"戰(zhàn)士技能一名:將斧? ,? 技能傷害:"+(this.gongJiLi*1.2+100));
}
}
