我是初学java的 发个代码问下,别喷我好么。
我就发点我不懂的地方
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的