接口和抽象的特点,并比较他们有什么不同,如何实现互补

解决方案 »

  1.   

    1、假设拥有姓、名是一个文明人的标志;
    2、假设所有的文明人的姓必须跟父亲姓。
    则设计如下:
    文明人接口public interface ICivilizedPeople{
      public String getLastName();
      public String getOtherName();
    }张氏家族抽象类public abstract class CP_zhang implements ICivilizedPeople{
      public String getLastName(){
            return "张";
      }
      //public abstract String getOtherName();  //可以不需要写}张三 常规类public class ZhangSan extends CP_zhang{
      public String getOtherName(){
            return "三";
      }
      //Main函数调用
      public static void main(String [] args){
        ICivilizedPeople icp = new ZhangSan();
        //CP_zhang  icp = new ZhangSan();  //同上一行的执行结果一样,但含义稍微有些区别
        System.out.println(icp.getLastName());
        System.out.println(icp.getOtherName());
      }
    }
      

  2.   

    接口
        接口里的方法默认为 public abstracted
       接口里的字段默认为 public static final
       接口永远没有实例字段,静态方法
        接口不能创建对象
        实现接口就要实现所有的抽象方法
        覆盖接口方法要用public
    抽象类
       不能用来创建对象,可申明此类型的变量
       有构造方法
       抽象类可以继承实体类,最好实体类要有无参构造方法
       抽象类可以有:具体方法,数据,抽象方法(必须在抽象类中)。
       抽象类可以不含有抽象方法。