Konsep: Warisan ialah salah satu daripada tiga ciri utama tatabahasa berorientasikan objek boleh mengurangkan lebihan kod dan meningkatkan kecekapan pengaturcaraan. Dengan mewarisi subkelas, anda boleh secara bebas memanggil atribut dan kaedah tertentu dalam kelas induk Subkelas hanya boleh mewarisi satu kelas induk dan kelas induk boleh diwarisi oleh berbilang subkelas. Ia seperti menunjukkan kepada kita bahawa anak-anak mewarisi harta bapa mereka dalam kehidupan. Kelebihan mengatasi ialah subkelas boleh menentukan tingkah laku mereka sendiri mengikut keperluan. Maksudnya, subkelas boleh melaksanakan kaedah kelas induk seperti yang diperlukan Sama seperti golden retriever dan huskies, ciri-ciri mereka berasal dari anjing, hamster dan tupai, ciri-ciri mereka berasal dari tikus, dan perbezaannya adalah mutasi genetik, yang setara. untuk menulis semula
Ciri-ciri warisan:
1): Java hanya menyokong warisan akar tunggal, iaitu, kelas hanya boleh mempunyai satu kelas induk langsung dan kelas induk boleh mempunyai berbilang subkelas
2): Ekstrak atribut awam subkelas untuk menjana atribut kelas induk untuk warisan
3): Subkelas tidak boleh mewarisi atau menulis ganti atribut dan sumber yang diubah suai oleh kelas induk secara peribadi
Ciri mengatasi:
1). Kaedah yang ditindih oleh subkelas mesti mempunyai nama kaedah dan senarai parameter yang sama dengan kaedah yang ditindih bagi kelas induk
2). subkelas Jenis nilai pulangan kaedah tidak boleh lebih besar daripada jenis nilai pulangan yang ditindih bagi kelas induk
3). kaedah ganti kelas induk Kaedah yang diisytiharkan sebagai peribadi (iaitu atribut peribadi) dalam kelas induk tidak boleh ditindih
4 dalam kelas induk
yang diperlukan Kaedah atau kata kunci yang digunakan:
lanjutkan: Kita boleh mewarisi melalui kata kunci ini boleh dicapai dengan menulis kelas atau kaedah yang perlu diwarisi selepas kata kunci
super (): Kita boleh menggunakan kaedah ini untuk memanggil atribut atau kaedah kelas induk yang kita warisi menggunakan
Kelas ujian:
package com.ytzl.total; /*继承*/ public class inherit { public static void main(String[] args) { son son = new son();//调用子类 System.out.println(son.a);//调用子类中的属性 son.a=2;//可以通过子类改变父类中的属性 System.out.println("更改后的父类属性"+son.a); son.myfather();//带调用父类的方法 son.money();//调用重写的方法w son.jng();//调用静态修饰方法 son.jing(); System.out.println("子类通过继承方法调用父类中的属性=>"+son.b);//调用父类中的静态属性 son.two(); } }
Kelas induk:
package com.ytzl.total; public class father { int a=0; static int b=2; private int one=4;//被私有属性修饰后将不能别子类调用或继承, protected int two=0; protected void two(){//该方法只能被子类继承重写不能被调用 System.out.println("我是protected方法"); } public void setOne(int one) { this.one = one; } public void money(){ System.out.println("我是被子类重写的方法"); System.out.println("父类的属性=>"+a); } public void myfather(){ System.out.println("我是被子类继承的方法"); } public static void jing(){ System.out.println("你好"); } public static void jng(){ System.out.println("你好"); } private void dong(){ System.out.println("私有方法"); } }
Subkelas:
package com.ytzl.total; public class son extends father{ //方法的重写 public void money(){ super.money();//通过继承过去父类的money方法里的内容 System.out.println("重写后的方法"); System.out.println("被继承后"+super.a);//通过super来继承父类的属性 System.out.println("继承后的protected属性=>"+super.two);//通过super来继承protected方法 super.two(); } public static void jing(){//不能重写静态方法static System.out.println("不好"); } private void dong(){//不能重写或者继承父类的私有方法 System.out.println("私有方法"); } protected void two(){//重写后的protected方法 System.out.println("我是重写后的protected方法"); } }
Keputusan selepas dijalankan:
Atas ialah kandungan terperinci Apakah ciri-ciri warisan Java dan kaedah mengatasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!