Orientado a objetos (palabra clave final, interfaz)

1.palabra clave final

Se utiliza para declarar propiedades (variables miembro), métodos y clases.

1.1 asignación de atributos finales

  • Asignar valor al mismo tiempo que la declaración, a menudo se usa junto con estático (después de su uso, solo habrá una copia en el área de método)
  • No se asignan valores al declarar, los valores se deben asignar uno a uno en el constructor.
  • Al crear cada objeto, el valor del atributo final es correcto

1.2 modificación final

Realice modificaciones finales a los parámetros: agregue la palabra clave final delante de los parámetros del método para evitar que los datos se modifiquen en el cuerpo del método.

ejemplo:

//final 修饰的类不可以被继承
public class FinalDemo {
    //final+static 修饰的在方法区是唯一的
    final static int num = 0;
    final String name;
//每次创建的name都是唯一的
    public FinalDemo(String name) {
        this.name = name;
    }
    //final修饰的方法不可以重写
    public final void first(){
        System.out.println("我就是我,不一样的烟花");
    }
    public static void main(String[] args) {
      FinalDemo finalDemo =  new FinalDemo("小黑子");
        System.out.println("我是"+finalDemo.name);
    }
}
public class Final1 extends FinalDemo{

    public Final1(String name) {
        super(name);
    }
}
public class Test {
    public static void main(String[] args) {
        FinalDemo finalDemo = new FinalDemo("鸡哥");
        System.out.println("我的名字是"+finalDemo.name);
        finalDemo.first();
        Final1 final1 = new Final1("小红");
        System.out.println("我的名字是"+final1.name);
        final1.first();
    }
}

resultado:

 

2. Interfaz

2.1 Definición de interfaz

Definición de interfaz: utilice la palabra clave interfaz para declarar una interfaz.

[Modificador de acceso] interfaz nombre de la interfaz [extiende otros nombres de interfaz 1,….otros nombres de interfaz n]

{

// Declarar método abstracto constante método estático método predeterminado

}

2.2 Uso de interfaces

Las clases implementan interfaces usando la palabra clave implements. En una declaración de clase, la palabra clave Implements se coloca después de la declaración de clase.

[Modificador de acceso] clase nombre de clase implementa nombre de interfaz 1, nombre de interfaz 2...{ }

Herencia combinada:

[Modificador de acceso] clase nombre de clase extiende el nombre de la clase principal implementa el nombre de la interfaz 1, nombre de la interfaz 2...{ }

2.3 Características de la interfaz

Características de la interfaz:

• Las interfaces son implícitamente abstractas. Al declarar una interfaz, no es necesario utilizar la palabra clave abstracta.

• Los métodos en las interfaces pueden ser abstractos, estáticos o predeterminados.

• Las propiedades declaradas en la interfaz son públicas estáticas finales de forma predeterminada.

• La interfaz no es heredada por la clase, sino implementada por la clase.

• Las interfaces no pueden crear instancias de objetos.

• Al igual que en la herencia, existe polimorfismo entre las interfaces y las clases de implementación.

• Una interfaz puede heredar varias otras interfaces.

• Cuando una clase implementa una interfaz, la clase debe implementar todos los métodos abstractos en la interfaz. De lo contrario, la clase debe declararse abstracta.

ejemplo:

public class Animal {
    String name;
    int age;
    public void eat(){
    }
}
public interface Run {
     void run();
}
public interface Swim {
     void swim();
     public default void test1(){
          //创建默认方法
          System.out.println("默认方法");
     }
     public static void test2(){
          System.out.println("静态方法");
     }
}
public class Cat extends Animal implements Run,Swim {
    @Override
    public void run() {
        System.out.println("小猫会跑");
    }

    @Override
    public void swim() {
        System.out.println("小猫会游泳");
    }
}
public class Cow implements Run {

    @Override
    public void run() {
        System.out.println("哞儿~,快跑");
    }
}
public class Test {
    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.age=18;
        System.out.println(cat.age);
        cat.name="咪咪";
        System.out.println(cat.name);
        cat.eat();
        cat.run();
        cat.swim();
        Run run = new Cat();
        run.run();
        Swim swim = new Cat();
        swim.swim();
        Swim.test2();
        //静态方法通过接口名访问
        cat.test1();
        //默认方法通过子类创建的对象访问
    }
}

Supongo que te gusta

Origin blog.csdn.net/weixin_69778508/article/details/130592681
Recomendado
Clasificación