Las reglas gramaticales definen interfaz JAVA

Interface ( papel de interfaz es muy rica, y los patrones de diseño combina a menudo juntos ):

  • Concepto: la interfaz puede considerarse como una clase abstracta "completo", la interfaz es una especificación extraído de una pluralidad de clase similares, la interfaz es la especificación incorporada (especificación de comunicación), tales como diversos tipos de la placa base " ranura "independientemente de qué proveedor, independientemente de qué tipo de placa, pueden realizar una comunicación de datos con la CPU, tarjeta gráfica, memoria - como un conjunto de internacionales públicas " estándar "(especificaciones), se refleja en la interfaz.
  • sintaxis definida:
    【修饰符】 interface 接口名
    {
        //0 ~ N个Field定义
        //0 ~ N个抽象方法
        //0 ~ N个内部类、内部接口、内部枚举定义
    }

    nota:

  1. La interfaz no puede tener un constructor, la inicialización de bloque;

  2. Los modificadores pueden ser: pública o se omite, no puede ser modificada para su uso estático, no (no permite subclases) modificado con un final, no es abstracta;

  3. Nombre de la interfaz: formulado a partir de más de una palabra, la primera letra de cada palabra en mayúscula, recomienda la interfaz con el "adjetivo" en algunos lugares (c #), la interfaz recomendada para que el principio, y más tarde algunos programadores de Java de esta manera, [ interfaz en la composición, son públicos, ya que la interfaz pública para reflejar las normas];

  4. Interfaz en el campo, por defecto hay tres modificadores: público, estática, final, ya sea escrita o no escrita, de todos modos, la interfaz tiene [en el campo, debe especificar una declaración de valor inicial, debido a que las variables de clase finales sólo pueden ser modificados en un comunicado cuando la inicialización estática especifica valor inicial, y ya que la interfaz no contiene el bloque de inicialización, el valor inicial se puede especificar sólo cuando la declaración];

  5. Interfaz de métodos en la forma predeterminada hay dos modificadores: pública, abstracta, ya sea por escrito o no escrito, de todos modos, allí [en el método de interfaz no puede ser estática, debido a que la interfaz donde los métodos predeterminados tienen modificación resumen];

  6. Interfaz de la clase interna, la interfaz interna, la enumeración interna, hay dos modificadores predeterminados, público, estática, ya sea escrita o no escrita, de todos modos existe;

  7. métodos abstractos y estáticos no pueden ser modificadas, el resumen y privado al mismo tiempo no permite métodos de modificación, extracto no puede ocurrir simultáneamente con el final, los dos siempre mutuamente excluyentes;

  8. N interfaz puede tener una interfaz directa de los padres. Después con la interfaz, la interfaz se puede utilizar para definir una variable, no se puede crear una instancia de la interfaz, la interfaz es el mayor uso de otras clases para lograr su propio;

  9. implementa una realización o interfaces de N, cuando una clase implementa una interfaz, clase de implementación o proporcionar una implementación para todos los métodos abstractos matriz abstracta de clase, subclase o que sólo pueden ser una clase abstracta;

  10. La interfaz es principalmente en la "programación a una interfaz" tiempo para proporcionar un mecanismo más flexible
interface A
{
}
interface B
{
}
interface C
{
}
//一个接口,可以拥有N个直接的父接口
public interface D extends A,B,C
{
}
interface Eatable
{
    void eat();
}
interface Flyable
{
    void fly();
}

public interface Walkable extends Eatable
{
    int AGE = 20;
    //对于执行“宏替换”,变量名应该是多个单词连缀而成,并且所有字母全部大写,单词与单词之间以下划线隔开
    final String MY_NAME = "张三";
    //接口里的成分只能用public修饰,可省略
    double weight = 34.4;

    //方法前面默认有public abstract修饰。
    void info();
    //方法前面默认有abstract修饰,所以方法后面坚决不能有花括号
   // void test(){}             //错误
}

//一个类可以同时“实现”N个接口
public class Sparrow implements Flyable, Walkable
{
    @Override
    public void eat()
    {
        System.out.println("麻雀一口一口地吃麦子");
    }
    public void fly()
    {
        System.out.println("麻雀在天空飞翔");
    }
    public void info()
    {
        System.out.println("我是一只小麻雀");
    }

    public static void main(String[] args)
    {
    	//向上转型
        Walkable w = new Sparrow();
        //w引用变量,在编译时只是Walkable类型
        //因此,编译器只能允许调用Walkable里的方法
        w.eat();          //麻雀一口一口地吃麦子
        w.info();         //我是一只小麻雀
        
        //强转,向下转型
        Sparrow sp = (Sparrow) w;
        sp.eat();         //麻雀一口一口地吃麦子
        sp.fly();         //麻雀在天空飞翔
        sp.info();        //我是一只小麻雀
        
        Sparrow fy = new Sparrow();
        fy.fly();         //麻雀在天空飞翔
    }
}
  • Descripción:
  1. Las similitudes entre las interfaces y clases abstractas: puede contener métodos abstractos, no puede crear una instancia; hereda de subclases de una clase abstracta que implementa la interfaz, se requieren para implementar todos los métodos abstractos, o subclase sólo puede ser una clase abstracta
  2. Interfaz y la diferencia entre clases abstractas en: la interfaz, hay métodos sólo abstractas, sino una clase abstracta sin métodos abstractos sólo pueden contener métodos ordinarios; no pueden definir métodos estáticos en una interfaz, pero la clase abstracta pueden contener métodos estáticos; interfaces en el el campo no siempre es pública, estática, final, pero la clase abstracta puede campo campo es el más común, las interfaces no pueden contener constructores, pero pueden tener un constructor de la clase abstracta, las interfaces no pueden contener bloque de inicialización, pero puede clase abstracta inicialización de bloque; interfaz puede tener una pluralidad de interfaz directa a los padres, pero la clase abstracta sólo un padre directa.

Publicados 111 artículos originales · ganado elogios 57 · Vistas a 60000 +

Supongo que te gusta

Origin blog.csdn.net/qq_38358499/article/details/100600212
Recomendado
Clasificación