转载于 :http://www.verejava.com/?id=16992804621647

/**知识点:抽象类abstract题目:爸爸叫我买一斤水果和一条鱼思路:1.抽象出类:爸爸(Father),儿子(Son),水果(Fruit),鱼(Fish)2.找出类关系:儿子继承爸爸水果买回来属于->Father->Son3.找出方法:买(buy)是爸爸叫儿子买水果,爸爸知识发出了要求声明并没用实现而真正去实现这个是儿子*//**注意:1.加了关键字abstract的抽象方法不能有方法体实现,只能有方法的声明2.当一个类中存在以abstract声明的抽象方法时,该类必须加上abstract关键字表明该类是抽象类3.子类如果继承一个抽象类,子类必须实现父类所有的抽象方法4.抽象类中也可以声明实现方法,也就是抽象类中可以定义抽象方法,也可以定义带方法体的实现方法,而子类不需要复写抽象父类的具体已经实现的方法5.抽象类不能直接实例化,必须有其实现的子类间接来实例化*/publicclassTestAbstract{publicstaticvoidmain(String[]args){//实例化父亲//Fatherf=newFather();//实例化儿子Sons=newSon("李明");//地摊上有各种水果和鱼Fruitapple=newFruit("苹果");Fruitgrape=newFruit("葡萄");Fishcaoyu=newFish("草鱼");Fishlianyu=newFish("鲢鱼");//买水果和鱼s.buy(apple);s.buy(lianyu);//回家以后高兴的告诉爸爸System.out.println("爸爸,爸爸我买了一斤:"+s.getFruit().getName()+"和一条:"+s.getFish().getName());}}abstractclassFather{protectedFruitfruit;protectedFishfish;publicFruitgetFruit(){returnthis.fruit;}publicFishgetFish(){returnthis.fish;}//要求声明要买水果publicabstractvoidbuy(Fruitfruit);//要求声明要买条鱼publicabstractvoidbuy(Fishfish);}classSonextendsFather{privateStringname;publicSon(Stringname){super();this.name=name;}//儿子实现父亲买水果的要求publicvoidbuy(Fruitfruit){this.fruit=fruit;}//儿子实现父亲买条鱼的要求publicvoidbuy(Fishfish){this.fish=fish;}publicStringgetName(){returnthis.name;}}classFruit{privateStringname;publicFruit(Stringname){this.name=name;}publicStringgetName(){returnthis.name;}}classFish{privateStringname;publicFish(Stringname){this.name=name;}publicStringgetName(){returnthis.name;}}

转载于 :http://www.verejava.com/?id=16992804621647