在我们的Java学习中我们要学会一些非常好用且好玩的东西。在这里我们的在Java中的继承也是一个好玩的小玩意。
在学习之前我们要明白什么是继承。
继承的单词并不叫extends,那么为什么我们的idea中的继承却是extends,extends我们可以翻译成延展或者扩展,然而继承也就是这么一个玩意,在我们的继承当中有父类和子类,我们的子类可以继承父类的一些东西。
继承的基本思想是,基于已有的类创造新的类。继承已存在的类就是复用这些类的方法,而且可以增加一些新的方法和字段,使新类能够适应新的情况,继承是Java程序设计中一项核心技术,它主要解决的问题是:共性的抽取,实现代码复用。
子类继承父类后,子类可以复用父类的方法和属性,子类在实现时只关心自己新增加的成员即可。
package mmm.jsu.java03;
public class Client {
public static void main(String[] args) {
CoffeeStore store = new CoffeeStore();
Coffee coffee = store.orderCoffee("BlackCoffee");
System.out.println(coffee.getName());
System.out.println(coffee);
}
}
package mmm.jsu.java03;
public abstract class Coffee {
public abstract String getName();
public void addMilk(){
System.out.println("add milk");
}
public void addsugar(){
System.out.println("add sugar");
}
}
package mmm.jsu.java03;
public class CoffeeFactory {
public Coffee createCoffee(String type){
Coffee coffee = null;
if("BlackCoffee".equals(type)) {
coffee = new BlackCoffee();
}
else if("Latte".equals(type)){
return new Latte();
}
return coffee;
}
}
package mmm.jsu.java03;
public class CoffeeStore {
private Coffee coffee;
public Coffee orderCoffee(String type){
CoffeeFactory factory = new CoffeeFactory();
Coffee coffee =factory.createCoffee(type);
return coffee;
}
}
package mmm.jsu.java03;
public class Latte extends Coffee {
public String getName(){
return "Latte";
}
}