java 抽象类 接口 ppt_java第10章 抽象类和接口 .ppt

☆在继承的层次结构中,随着一个个新子类的出现,类变得越来越专门和具体。如果从一个子类上溯到父类,类就变得更一般、更通用。类的设计应该保证父类包含子类的共同特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类称为抽象类(abstract class)。 ☆有时需要从几个类中派生出一个子类,这种能力称为多重继承(multiple inheritance)。然而,Java不支持多重继承。Java的每个子类都是直接从一个父类继承的,这种限制称为单重继承(single inheritance)。如果用关键字extends定义子类,它只允许有一个父类。如果使用接口,可以得到多重继承的效果。 创建一个类名为Animal(动物)的类和它的子类Tiger(老虎)、Chicken(小鸡)和Elephant(大象)。由于小鸡是可食用的,对小鸡类Chicken实现Edible接口 一个类可能会实现多个接口,Chicken类也实现了Comparable机口,根据它们的体重对两只小鸡进行比较 创建一个类名为Fruit(水果)的类和它的子类Apple(苹果)和Orange(桔子)。由于所有的水果都是可食用的,对水果类Fruit实现Edible接口。Fruit类是抽象类,因为当不知道水果的具体是什么时,无法实现howToEat方法。在Apple和Orange类中,给出该方法的具体实现 。 * 创建自定义接口 public interface Edible { /** Describe how to eat */ public String howToEat();} class Animal {}class Chicken extends Animal implements Edible { public String howToEat() { return "Fry it"; }}class Tiger extends Animal {} class abstract Fruit implements Edible {}class Apple extends Fruit { public String howToEat() { return "Make apple cider"; }}class Orange extends Fruit { public String howToEat() { return "Make orange juice"; }} * class Chicken extends Animal implements Edible, Comparable { int weight; public Chicken(int weight) { this.weight = weight; } public String howToEat() { return "Fry it"; } public int compareTo(Object o) { return weight – ((Chicken)o).weight; }} 实现多接口 * 创建自定义接口(续) public interface Edible { /** Describe how to eat */ public String howToEat();} public class TestEdible { public static void main(String[] args) { Object[] objects = {new Tiger(), new Chicken(), new Apple()}; for (int i = 0; i < objects.length; i++) showObject(objects[i]); } public static void showObject(Object object) { if (object instanceof Edible) System.out.println(((Edible)object).howToEat()); }} * 克隆接口Cloneable package java.lang; public interface Cloneable { } Marker Interface: An empty interface. A marker interface does not contain constants or methods. It

你可能感兴趣的:(java,抽象类,接口,ppt)