当前位置: 代码迷 >> Java相关 >> JAVA学习心得-总结JAVA抽象类和接口
  详细解决方案

JAVA学习心得-总结JAVA抽象类和接口

热度:45   发布时间:2016-04-22 20:44:52.0
JAVA学习经验--总结JAVA抽象类和接口

* --总结JAVA抽象类和接口
 * 1.抽象类:
 *          1》抽象类可以修饰方法,修饰类,但不能修饰属性,不能被实例化
 *          2》抽象类可以被继承,只能是单继承,继承抽象类必须实现抽象方法
 *          3》抽象类不能被static ,fina,private一起修饰
 *          4》抽象类是有多态性的
 *
 * 2.接口:
 *          1》接口是一种特殊的抽象类,不能被实例化
 *          2》接口申明的属性默认关键字为public abstract static
 *          3》接口申明的方法默认关键字为 public abstract
 *          4》接口是可以被继承的,接口可以被继承多个,也可已继承多个
 *          5》接口是有多态的
 *

 

 

package come.java.zhangfan.test3;public class Test  {    public static void main(String[] args) {        Students s =new Students();        t1(s);//输出 ---    woshi Student               T  t =new T();        t(t);    }    //抽象类的多态性    public static void t1(Person p ){        p.T();    }       //接口的多态性    public static void t(Runner p){        p.run();//输出 - -- woshi Run    }}//抽象类的应用//申明抽象类abstract class Person{//    字段 i 的修饰符不合法;只允许使用“公用”、“受保护”、“私有”、“静态”、“终态”、“瞬态”或“易变”//    属性无法被覆盖//    abstract int i ;   //    类型 Person 中的抽象方法 T 只能设置可视性修饰符“公用”或“受保护”中的一个//    如果static 那么意味着可以不创建对象直接调用该方法,与abstact 冲突//    abstract static public void T();   //    类型 Person 中的抽象方法 T 只能设置可视性修饰符“公用”或“受保护”中的一个//    本身就冲突,不解释//    abstract final public void T();   //    类型 Person 中的抽象方法 T 只能设置可视性修饰符“公用”或“受保护”中的一个//    私有方法无法被覆盖//    abstract private void T();          abstract public void T();    //True}//申明一个Student类继承抽象类,并重写T方法class Students extends Person{    public void T(){        System.out.println("woshi Student");    }}//接口的应用interface Runner{    public abstract void run();}interface Swimmer{    void swim();}interface Flier {    void fly();}//接口可以多继承interface t extends Runner,Swimmer,Flier{   }//必须申明所有继承的方法class t1 implements t{    @Override    public void run() {        // TODO 自动生成的方法存根           }    @Override    public void swim() {        // TODO 自动生成的方法存根           }    @Override    public void fly() {        // TODO 自动生成的方法存根           }   }//接口可以多引用//必须申明所有继承的方法class T implements Flier,Runner,Swimmer{    @Override    public void fly() {        // TODO 自动生成的方法存根        System.out.println("woshi fly");    }    @Override    public void swim() {        // TODO 自动生成的方法存根        System.out.println("woshi Swim");    }    @Override    public void run() {        // TODO 自动生成的方法存根        System.out.println("woshi Run");    }   }

 

  相关解决方案