Rumah  >  Artikel  >  Java  >  Warisan dalam Java: Konsep dan Penggunaan

Warisan dalam Java: Konsep dan Penggunaan

WBOY
WBOYke hadapan
2023-04-22 16:19:081720semak imbas

    Konsep pewarisan

    Warisan ialah apabila subkelas mewarisi ciri dan tingkah laku kelas induk, supaya objek subkelas (contoh) mempunyai domain contoh dan domain contoh kelas induk Kaedah, atau subkelas mewarisi kaedah daripada kelas induk, supaya subkelas mempunyai tingkah laku yang sama dengan kelas induk.

    Melalui warisan, anda boleh membuat kelas baharu dengan cepat, merealisasikan penggunaan semula kod, meningkatkan kebolehselenggaraan program, menjimatkan banyak masa dalam mencipta kelas baharu dan meningkatkan kecekapan dan kualiti pembangunan.

    Faedah warisan:

    • Kurangkan pertindihan kod

    • Tingkatkan kebolehgunaan semula kod

    • Memudahkan pengembangan fungsi

    ✅Format warisan: class A extends B{}

    A: subclass, derived class, subclass, B: parent class , superclass, base class, superclass

    merangkumi: setelah subkelas A mewarisi kelas induk B, subkelas A memperoleh semua sifat dan kaedah yang diisytiharkan dalam kelas induk B. Khususnya, kelas induk Untuk atribut atau kaedah yang diisytiharkan sebagai peribadi dalam subkelas, selepas mewarisi daripada kelas induk, subkelas masih dianggap telah memperoleh struktur persendirian kelas induk Ini hanya kerana pengaruh enkapsulasi, subkelas tidak boleh memanggil struktur kelas induk secara langsung

    Selepas mewarisi. kelas induk, subkelas juga boleh mengisytiharkan atribut atau kaedah uniknya sendiri: untuk merealisasikan pengembangan fungsi. Kelas induk boleh mempunyai berbilang subkelas Pewarisan tunggal kelas dalam Java: Kelas hanya boleh mempunyai satu kelas induk ialah konsep relatif Kelas induk yang diwarisi secara langsung dipanggil: induk langsung diwarisi secara tidak langsung dipanggil: kelas induk tidak langsung Selepas kelas anak mewarisi kelas induk, ia memperoleh atribut dan kaedah yang diisytiharkan dalam kelas induk langsung dan semua kelas induk tidak langsung

    Jika kita tidak mempunyai pengisytiharan yang jelas. Jika ia adalah kelas induk kelas, maka kelas ini diwarisi daripada kelas java.lang.Object Kelas Object ialah kelas induk akar bagi semua kelas java >

    1. Subkelas tidak boleh mewarisi kelas induk secara selektif; 3. Kaedah pembinaan tidak Akan diwarisi oleh subkelas, tetapi pembina kelas induk boleh dipanggil daripada subkelas.

    Sebagai contoh,

    kaedah penulisan semula

    Dalam aplikasi sebenar, fungsi kelas anak dan ibu bapa yang kita tulis adalah berbeza, maka kita perlu Override atau menyembunyikan ini kaedah kelas induk.

    1 Penulisan Semula: Selepas subkelas mewarisi kelas induk, ia boleh mengatasi kaedah dengan nama dan parameter yang sama dalam kelas induk

    class teacher{             //声明一个teacher类为父类
    	String name;      	   //定义父类的成员变量name、age   
    	int age;
    	void show(){           //定义父类成员方法,将成员变量输出
    		System.out.println(name); 	  
    		System.out.println(age); 
    	}
    }
    class Student extends teacher {     //声明一个Student类为子类并继承父类
    }
    public class myfirst {
    	public static void main(String[] args) {
    	System.out.println("学生");
    	Student student=new Student();     //声明一个Student类的实例对象student
    	student.name="Tom";                //子类调用父类的成员变量name并赋值
    	student.age=19;                    //子类调用父类的成员变量age并赋值
    	student.show();                    //子类调用父类的成员方法show
    	}
    }
    2 Aplikasi: Selepas menulis semula, apabila objek subkelas dicipta , apabila kaedah dengan nama dan parameter yang sama dalam subkelas dipanggil melalui objek subkelas, apa yang sebenarnya dilaksanakan ialah kaedah subkelas mengatasi kelas induk

    3 Menulis semula peruntukan: kaedah

    Pernyataan:

    Nama kaedah jenis nilai pulangan pengubah kebenaran (senarai parameter formal)

    Kaedah dalam subkelas dipanggil kaedah ganti dan kaedah dalam kelas induk dipanggil kaedah yang ditindih Kaedah yang ditulis, nama kaedah dan senarai parameter formal kaedah yang ditindih oleh subkelas adalah sama dengan nama kaedah dan senarai parameter formal kaedah yang ditindih bagi kelas induk, dan pengubah kebenaran kaedah ditindih oleh subkelas tidak kurang daripada kaedah yang ditindih bagi kelas induk kes khas pengubah kebenaran kaedah: subkelas tidak boleh mengatasi kaedah yang diisytiharkan sebagai kebenaran peribadi dalam kelas induk

    Mengenai jenis nilai pulangan:
    Jenis nilai pulangan kaedah ganti dalam kelas induk adalah tidak sah, jenis nilai pulangan kaedah yang ditindih oleh subkelas hanya boleh terbatal Jenis nilai pulangan kaedah ganti kelas induk ialah jenis A, maka jenis nilai pulangan kaedah yang ditindih oleh subkelas boleh menjadi kelas A atau Subkelas kelas A

    Jenis nilai pulangan kaedah ganti kelas induk ialah jenis data asas (contohnya: berganda) , maka jenis nilai pulangan kaedah yang ditindih oleh subkelas mestilah sama

    Kaedah dengan parameter nama yang sama dalam subkelas dan kelas induk mesti diisytiharkan sebagai bukan statik sebelum ia boleh ditindih adalah statik, ia tidak boleh ditindih

    Contohnya,

    kunci super Penggunaan perkataan

    super difahami sebagai: daripada kelas induk, super. boleh digunakan untuk memanggil, atribut, kaedah, pembina

    Penggunaan super, kita boleh menggunakannya dalam kaedah atau pembina subkelas . Dengan menggunakan "super.property" atau "super.method", anda boleh memanggil sifat atau kaedah yang diisytiharkan secara eksplisit dalam kelas induk Walau bagaimanapun, biasanya, kami terbiasa untuk mengabaikan "super.

    dalam kes khas: Apabila atribut dengan nama yang sama ditakrifkan dalam subkelas dan kelas induk, jika kita ingin memanggil atribut yang diisytiharkan dalam kelas induk dalam subkelas, kita mesti menggunakan kaedah "super.property" secara eksplisit untuk menunjukkan bahawa atribut diisytiharkan dalam kelas induk sedang dipanggil apabila subkelas mengatasi kaedah dalam kelas induk, dan kita mahu memanggil kaedah yang diganti dalam kelas induk dalam kaedah dalam subkelas, kita mesti menggunakan "super.method" secara eksplisit. Menunjukkan bahawa kaedah ganti dalam kelas induk dipanggil
    class A{
    	public void sayHello() {                      //输出英文欢迎
    		System.out.println("Hello,Welcome to Java!!!");
    	}
    	public void sayBye() {
    		System.out.println("GoodBye,everyone");
    	}
    }
    class B extends A {           
        public void sayHello() {                      //输出中文欢迎  
        	System.out.println("大家好,欢迎学习Java!!!");
        }
    }
    public class myfirst {
    	public static void main(String[] args) {
    	B b=new B();                                //创建子类B的一个实例对象,使用默认构造方法
    	b.sayHello();                               //调用子类中重写的方法
    	b.sayBye();                                 //调用父类中的方法
    	}
    }

    super memanggil pembina

    Kita boleh menggunakan "super (senarai parameter formal)" dalam pembina cara subkelas untuk memanggil pembina yang ditentukan diisytiharkan dalam kelas induk Penggunaan "super (senarai parameter formal)" mesti diisytiharkan dalam baris pertama pembina subkelas Dalam pembina kelas, kami menyasarkan "(format) senarai Parameter ini )" atau super (senarai parameter formal)" hanya boleh memilih salah satu daripada dua dan tidak boleh muncul pada masa yang sama Dalam baris pertama pembina, tiada pengisytiharan eksplisit "ini (senarai parameter formal)" atau "super. (senarai parameter formal)" ", panggil pembina

    dalam kelas induk, seperti

    Atas ialah kandungan terperinci Warisan dalam Java: Konsep dan Penggunaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam