how2j.cn


工具版本兼容问题
在LOL中,武器是物品的一种,也是有名称和价格的
所以在设计类的时候,可以让武器继承物品,从而继承名称和价格属性


本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



5分50秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器



步骤 1 : 物品类Item   
步骤 2 : 武器类Weapon(不继承)   
步骤 3 : 武器类Weapon(继承类Item)   
步骤 4 : 练习-护甲   
步骤 5 : 答案-护甲   

物品类Item 有属性 name,price
public class Item { String name; int price; }
public class Item {
	String name;
	int price;
}
步骤 2 :

武器类Weapon(不继承)

edit
武器类: Weapon不继承Item的写法
独立设计 name和price属性
同时多了一个属性 damage 攻击力
public class Weapon{ String name; int price; int damage; //攻击力 }
public class Weapon{
	String name;
	int price;
	int damage; //攻击力

}

步骤 3 :

武器类Weapon(继承类Item)

edit
这一次Weapon继承Item
虽然Weapon自己没有设计name和price,但是通过继承Item类,也具备了name和price属性
public class Weapon extends Item{ int damage; //攻击力 public static void main(String[] args) { Weapon infinityEdge = new Weapon(); infinityEdge.damage = 65; //damage属性在类Weapon中新设计的 infinityEdge.name = "无尽之刃";//name属性,是从Item中继承来的,就不需要重复设计了 infinityEdge.price = 3600; } }
public class Weapon extends Item{
	int damage; //攻击力
	
	public static void main(String[] args) {
		Weapon infinityEdge = new Weapon();
		infinityEdge.damage = 65; //damage属性在类Weapon中新设计的
		
		infinityEdge.name = "无尽之刃";//name属性,是从Item中继承来的,就不需要重复设计了
		infinityEdge.price = 3600;
		
	}
	
}

步骤 4 :

练习-护甲

edit  姿势不对,事倍功半! 点击查看做练习的正确姿势
设计一个类Armor护甲
继承Item类,并且额外提供一个属性ac: 护甲等级 int类型

实例化出两件护甲
名称 价格 护甲等级
布甲 300 15
锁子甲 500 40
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

3分27秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器


public class Armor extends Item{ int ac; //护甲等级 public static void main(String[] args) { Armor cloth = new Armor(); cloth.name="布甲"; cloth.price=300; cloth.ac = 15; Armor chainMail = new Armor(); chainMail.name="锁子甲"; chainMail.price=500; chainMail.ac = 40; } }
public class Armor extends Item{

	int ac; //护甲等级
	
	public static void main(String[] args) {
		Armor cloth = new Armor();
		cloth.name="布甲";
		cloth.price=300;
		cloth.ac = 15;
		
		Armor chainMail = new Armor();
		chainMail.name="锁子甲";
		chainMail.price=500;
		chainMail.ac = 40;
	}
	
}


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2022-08-10 通过构造函数构造实例
ljbeiji




如题
public class Armor extends Item {
    int ac;

    public Armor(String name, float price, int ac) {
        this.name = name;
        this.price = price;
        this.ac = ac;
    }

    @Override
    public String toString() {
        return "Armor{" +
                "ac=" + ac +
                ", name='" + name + '\'' +
                ", price=" + price +
                '}';
    }

    public static void main(String[] args) {
        Armor armor1 = new Armor("布甲", 300, 15);
        Armor armor2 = new Armor("锁子甲", 500, 40);
        System.out.println(armor1.toString());
        System.out.println(armor2.toString());
    }
}
Armor{ac=15, name='布甲', price=300.0}
Armor{ac=40, name='锁子甲', price=500.0}

Process finished with exit code 0





回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2022-03-05 这个 int ac; 为什么需要在主函数外阿。我懂得局部变量和成员变量,但是感觉跟这里关系不大阿 大佬们
jhjfight

这个 int ac; 为什么需要在主函数外阿。我懂得局部变量和成员变量,但是感觉跟这里关系不大阿 大佬们




5 个答案

JHR
答案时间:2022-07-25
ljc20020822
答案时间:2022-07-04
naimen
答案时间:2022-06-01
int ac 是Armor类的属性,放在主函数里,就是主函数的一个变量,不是属性了。没理解错的话。

芬达味橘猫
答案时间:2022-04-29
答案

19970816wang
答案时间:2022-03-15
这样显得main方法中的代码内容没有那么多,而且更直观的看到ac的属性。



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2022-02-21 继承方法不能使用?
2021-11-03 答案
2021-10-10 答案


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 79 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 基础-类和对象-继承 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图