Herencia-Java-(modificador)

La herencia es una de las tres características principales de la orientación a objetos, que permite que las subclases tengan las propiedades y métodos de la clase principal, y también se pueden redefinir en la subclase y se pueden agregar propiedades y métodos adicionales.

Directorio de artículos


Prefacio

        El concepto de herencia:

La herencia es una de las tres características principales de la orientación a objetos, que permite que las subclases tengan las propiedades y métodos de la clase principal, y también se pueden redefinir en la subclase y se pueden agregar propiedades y métodos adicionales.

        Beneficios de la herencia:

La herencia puede crear una relación entre clases, una relación de clase padre-hijo. Después de generar una clase padre-hijo, la clase hija puede utilizar los miembros no privados de la clase padre. 


提示:以下是本篇文章正文内容,下面案例可供参考

1. ¿Qué son los modificadores?

paquete (entender): 

        1. El concepto de paquete: Un paquete es una carpeta que se utiliza para administrar archivos de clase. 

        2. Formato de definición del paquete nombre del paquete (use . para separar paquetes de varios niveles) Por ejemplo: paquete com.heima.demo; 

        3. Compile con el paquete y ejecútelo con el paquete Compile con el paquete: javac -d .nombre de clase.java Por ejemplo: javac -d .com.heima.demo.HelloWorld.java Ejecute con el paquete: nombre de paquete java + nombre de clase 

Por ejemplo: java com.heima.demo.HelloWorld 

2. Pasos de uso

1. Reescribir y usar

        A continuación se crean tres nuevas clases, una clase principal y dos subclases.

El código de la clase principal es el siguiente (ejemplo):

package com.xxgc.ch02_2.po;
//人类
public class Person {
    //静态常量:值不可被改变
    //静态使用情况:便于访问,数据共享。
    public final String schoolName="济南信息工程学校";
    private String name;
    private int age;
    //无参构造
    public Person()
    {

    }
    //有参构造
    public Person(String name,int age)
    {
        this.name=name;
        this.age=age;
    }
    //吃饭
    protected void eat() {
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

        Cree dos subclases a continuación, a saber, clase de estudiante (clase de estudiante); clase de maestro (clase de maestro).

El código de clase de estudiante es el siguiente:

package com.xxgc.ch02_2.po;

public class Student extends Person{
    public Student()
    {

    }
    public Student(String name,int age)
    {
        super(name,age);
    }
    //重写父类的方法,方法名一样,参数列表也必须一样
    public void eat()
    {
        System.out.println("学生吃肉");
    }
    public void study()
    {
        System.out.println(super.getName()+"学习");
    }
}

        A continuación creamos la clase de profesor.

        El código se muestra a continuación:

package com.xxgc.ch02_2.po;
//老师类
public class Teacher extends Person{
    public Teacher()
    {

    }
    public Teacher(String name,int age)
    {
        super(name,age);
    }
    public void eat()
    {
        System.out.println("老师吃烤鱼");
    }
    public void teach()
    {
        System.out.println(super.getName()+"教课");
    }
}

        Volver a escribir:

        No sé si habrás notado que entre las tres clases anteriores, la subclase hereda la clase principal. Pero hay un método eat() que se encuentra en las tres clases y tiene el mismo nombre. Eso es todo (reescribir).

        Aunque la subclase hereda la clase principal, si existen los mismos métodos, utilice la subclase para llamarlos. El método de la subclase se llama de forma predeterminada, aquí hay un ejemplo: "Si tuvieras un teléfono móvil, ¿todavía tomarías prestado el teléfono móvil de otra persona?".

        Cree una nueva clase de prueba para determinar si lo anterior es incorrecto.

        El código de la clase de prueba es el siguiente:

package com.xxgc.ch02_2.test;

import com.xxgc.ch02_2.po.Student;
import com.xxgc.ch02_2.po.Teacher;

public class PersonDemo {
    public static void main(String[] args) {
        //打印学校名称
        Student stu=new Student();
        stu.setName("扶苏");
        stu.eat();
        String school= stu.schoolName;
        System.out.println(school);
        Teacher t=new Teacher();
        t.eat();

    }
}

      A través de la clase de prueba anterior, ejecute el código. Llame al método anulado eat () y llame al método eat () de las dos subclases respectivamente, los resultados son los siguientes:

        Los resultados de la ejecución demuestran que la declaración anterior es correcta: si hay un método anulado en la subclase y se llama en la subclase, se llama al método de la subclase en sí, no a la clase principal que llama. 

2.importar (comprender)

importar (comprender):

El significado del paquete guía. Cuando se usan clases en diferentes paquetes, es necesario escribir la ruta completa de la clase cuando se usa. Es demasiado problemático escribirlo. Para simplificar la operación de traer paquetes, Java proporciona la función de paquetes de guía El formato del paquete de guía 

Formato: nombre del paquete de importación; 

Ejemplo: importar java.util.Scanner; 

Código de muestra (objeto de escáner creado sin utilizar el paquete de importación)         

package com.heima; import java.util.Scanner; public class Demo { 
    public static void main(String[] args) { 
// 1. 没有导包,创建Scnaner对象
     Scanner sc = new Scanner(System.in); 
    } 
}

       1. final (aplicación)

           La función de la palabra clave fifianl. 

  •         fifinal representa el significado final y puede modificar métodos miembro, variables miembro y clases 
  •         El efecto de la modificación final de clases, métodos y variables. 
  •         Clase modificada fifianl: esta clase no se puede heredar (no puede tener subclases, pero puede tener clases principales) 
  •         Método modificado final: este método no se puede anular. 
  •         variable final modificada: indica que la variable es una constante y no se puede volver a asignar 

        2.fifinal modifica variables locales (comprensión)     

fifianl modifica variables de tipo de datos básicos:

  •         La modificación final significa que el valor de los datos del tipo básico no se puede cambiar. 
  •         fifinal modifica las variables del tipo de datos de referencia 
  •         La modificación final significa que el valor de dirección del tipo de referencia no se puede cambiar, pero se puede cambiar el contenido de la dirección. 

Ejemplo: 

public static void main(String[] args){
     final Student s = new Student(23); 
     s = new Student(24); 
    // 错误 s.setAge(24); // 正确 
}

        3.estático (aplicación):   

  • El concepto de estática. 
  • La palabra clave estática significa estática y puede modificar [métodos miembro] y [variables miembro] 
  • Características de la modificación estática. 
  • 1. Compartido por todos los objetos de la clase, esta es también la condición para que juzguemos si usamos la palabra clave estática 
  • 2. Por supuesto, se puede llamar mediante el nombre de la clase, o se puede llamar mediante el nombre del objeto [se recomienda utilizar el nombre de la clase para llamar] 

        El código se muestra a continuación:

class Student {
     public String name; //姓名
     public int age; //年龄 
    public static String university; //学校 共享数据!所以设计为静态!
   public void show() { 
        System.out.println(name + "," + age + "," + university); } 
    }
    public class StaticDemo {
     public static void main(String[] args) { 
    // 为对象的共享数据赋值 
    Student.university = "传智大学"; 
    Student s1 = new Student();
     s1.name = "林青霞"; 
    s1.age = 30;
     s1.show(); 
    Student s2 = new Student();
     s2.name = "风清扬"; 
    s2.age = 33; s2.show(); 
    } 
}

        4.Características de acceso estático (maestro)

  • características de acceso estático 
  • métodos de miembros no estáticos 
  • Puede acceder a variables miembro estáticas 
  • Puede acceder a variables miembro no estáticas 
  • Puede acceder a métodos de miembros estáticos 
  • Puede acceder a métodos de miembros no estáticos 
  • métodos de miembros estáticos 
  • Puede acceder a variables miembro estáticas 
  • Puede acceder a métodos de miembros estáticos 
  • Para resumirlo en una frase: 
  • Los métodos de miembros estáticos solo pueden acceder a miembros estáticos 

Resumir

Aquí hay un resumen del artículo:
Hablaremos de lo anterior hoy. Este artículo solo presenta brevemente el uso de modificadores de Java, y Java proporciona una gran cantidad de métodos que pueden hacernos rápidos y convenientes.

Supongo que te gusta

Origin blog.csdn.net/qq_68384595/article/details/126954014
Recomendado
Clasificación