我就发点我不懂的地方
get和set我就不复制了麻烦大家知道就好了
- Java code
//这是父类public abstract class Drink { private String name; private String taste; public Drink(){ } public Drink(String name, String taste){ this.name=name; this.taste=taste; } public abstract void drink();
- Java code
//这是子类继承父类的代码public class Beer extends Drink { public void drink() { System.out.println("名称:" + this.getName() + "\n口感:" + this.getTaste() + "\n冰镇饮用口感最好"); }}
- Java code
//测试类public class DrinkTest { public static void main(String[] args) { Coffee pl = new Coffee(); pl.setName("曼特宁咖啡"); pl.setTaste("醇厚偏苦"); pl.drink(); }}
这样修改了一下
我把子类添加了2个构造方法一个是没有参数的一个有2个参数的。
在测试类new的时候我就直接传了2个参数
Coffee p1 = new Coffee("曼特宁咖啡","醇厚偏苦");
p1.drink();
运行出来的是一样的。
这有什么区别么?和上面的有什么不同 不好之分么?
------解决方案--------------------
说没区别是不是太绝对了?效果一样就行了。。。
Coffee p1 = new Coffee("曼特宁咖啡","醇厚偏苦");//这种是在构造方法中对成员变量进行初始化。
Coffee pl = new Coffee();//先构造一个Coffee实例,name,taste 取默认值null;然后调用set方法赋值。
pl.setName("曼特宁咖啡");
pl.setTaste("醇厚偏苦");
其实,你现在接触的本来就不多,还考虑什么区别,只要功能实现,你成功了一小步了。。等接触多了,这些疑问自行解决,都算不算疑问。
------解决方案--------------------
当然还有误区,就是假如我说那种好,然后你写代码一直用那种,这种情况还不糟糕,因为毕竟对的代码没什么影响。要是遇到比较特殊的情况,就不知道怎么变通了。所以区别有,好坏之分。。。尽量不要这么想。学习的时候能多用不同的表现形式是有好处的,到了工作是用你最顺手的就可以了吧。
------解决方案--------------------
个人认为其实就是方便和不方便的问题
------解决方案--------------------
你这个Coffee 也是继承Drink的吧。。看你上面的代码都没交代…
这两种方法基本没啥区别吧,一个是初始化时候设置数据,一个是对象初始化后再set数据。
现在新手只要能实现功能就好,纠结于这种问题没什么意思,浪费精力。等学的多了自然会明白吧
------解决方案--------------------
------解决方案--------------------
擦,明显是想引用2l的