class Plate{
Plate(int i){
System.out.println("Plate constructor");
}
}
class DinnerPlate extends Plate{
DinnerPlate(int i) {
super(i);//必须初始化基类构造器
System.out.println("DinnerPlate constructor");
}
}
class Utensil{
//两个不同构造器,便于测试子类不能同时同地初始化
Utensil(String s){
System.out.println("String Utensil");
}
Utensil(int i){
System.out.println("Utensil constructor");
}
}
class Spoon extends Utensil{
//子类可以分步初始化基类
Spoon(int i){
super(i);
System.out.println("Spoon constructor");
}
Spoon(String i){
super(i);
System.out.println("Spoon constructor");
}
}
class Fork extends Utensil{
Fork(String s ){
super(s);
//super(1);//此处不能同时同地初始化基类构造器
System.out.println("Fork.constructor");
}
}
class Kniff extends Utensil{
Kniff (int i){
super(i);//构造器中初始化基类某个构造器
System.out.println("Kniff.constructor");
}
}
class Custom{
Custom(int i ){
System.out.println("Custom.costructor");
}
}
//上面的为辅助类,下面为主要类
public class PlaceSetting extends Custom{
//该类展示了组合和继承的魅力之处
//组合开始
private Kniff kn;
private Custom cu;
private Fork fo;
private Spoon sp;
private DinnerPlate di;
//继承开始
PlaceSetting(int i){
//初始化组合器
super(i);
kn=new Kniff(i);
cu=new Custom(i);
fo=new Fork(i+"1");
sp=new Spoon(i);
di=new DinnerPlate(i);
System.out.println("PlaceSetting.constructor");
}
public static void main(String []args){
PlaceSetting p=new PlaceSetting(2);//具有多功能的超级对象
}
}
Plate(int i){
System.out.println("Plate constructor");
}
}
class DinnerPlate extends Plate{
DinnerPlate(int i) {
super(i);//必须初始化基类构造器
System.out.println("DinnerPlate constructor");
}
}
class Utensil{
//两个不同构造器,便于测试子类不能同时同地初始化
Utensil(String s){
System.out.println("String Utensil");
}
Utensil(int i){
System.out.println("Utensil constructor");
}
}
class Spoon extends Utensil{
//子类可以分步初始化基类
Spoon(int i){
super(i);
System.out.println("Spoon constructor");
}
Spoon(String i){
super(i);
System.out.println("Spoon constructor");
}
}
class Fork extends Utensil{
Fork(String s ){
super(s);
//super(1);//此处不能同时同地初始化基类构造器
System.out.println("Fork.constructor");
}
}
class Kniff extends Utensil{
Kniff (int i){
super(i);//构造器中初始化基类某个构造器
System.out.println("Kniff.constructor");
}
}
class Custom{
Custom(int i ){
System.out.println("Custom.costructor");
}
}
//上面的为辅助类,下面为主要类
public class PlaceSetting extends Custom{
//该类展示了组合和继承的魅力之处
//组合开始
private Kniff kn;
private Custom cu;
private Fork fo;
private Spoon sp;
private DinnerPlate di;
//继承开始
PlaceSetting(int i){
//初始化组合器
super(i);
kn=new Kniff(i);
cu=new Custom(i);
fo=new Fork(i+"1");
sp=new Spoon(i);
di=new DinnerPlate(i);
System.out.println("PlaceSetting.constructor");
}
public static void main(String []args){
PlaceSetting p=new PlaceSetting(2);//具有多功能的超级对象
}
}