java教程之java繼續示例詳解。本站提示廣大學習愛好者:(java教程之java繼續示例詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是java教程之java繼續示例詳解正文
甚麼是繼續(extends)?
繼續是:新界說的類是從已有的類中獲得屬性和辦法的景象。 這個已有的類叫做父類, 從這個父類獲得屬性和辦法的類叫做子類。
ExtendsDemo1.java
/*甚麼是繼續*/
public class ExtendsDemo1 {
public static void main(String[] args) {
Truck t = new Truck();
t.size = 100; //不建議這麼寫。初始化成員變量最好應用結構辦法,或許供給set(), get()接口.
//貨車類的一個實例t從汽車類從繼續了size, color屬性。
//而貨車比汽車多一個貨箱
}
}
class Car { //汽車
int size; //車體年夜小
String color; //色彩
}
class Truck extends Car { //貨車
String packingBox; //貨箱
}
繼續的利益
1. 進步了代碼的重用性
2. 讓類和類之間發生了關系, 為多態發明了前提。
繼續(extends)的格局
class SubClass extends SuperClass {
//履行語句;
}
super症結字
1. super症結字和this的用法雷同
2. this代表本類援用, super代表父類援用
3. 當子類和父類湧現同名成員的時刻, 可以用super 和 this停止辨別
SuperDemo.java
/* super的用法
* 輸入成果:
* super.i = 10, this.i = 20
*/
public class SuperDemo {
public static void main(String[] args) {
new SubClass().showMessage();
}
}
class SuperClass {
int i = 10;
}
class SubClass extends SuperClass {
int i = 20;
public void showMessage() {
System.out.printf("super.i = %d, this.i = %d\n", super.i, this.i);
}
}
對從父類繼續過去的辦法停止重寫(Override)
1. 當子類中湧現與父類如出一轍的辦法(前往值, 函數名, 形參)時, 會湧現重寫(Override)操作.
OverrideDemo1.java
/* 怎樣對從父類繼續過去的辦法停止重寫(Override)
* 輸入成果:
* SuperClass: I am good~
* SubClass: I am excellent~~~
*/
public class OverrideDemo1 {
public static void main(String[] args) {
SubClass sc = new SubClass();
sc.speak();
}
}
class SuperClass {
public void speak() {
System.out.println("SuperClass: I am good~");
}
}
class SubClass extends SuperClass {
@Override //@Override表現上面湧現的辦法會湧現重寫操作,由編譯器檢討,假如達不到重寫的前提,就會報錯。必定水平上增長了代碼的平安性
和硬朗性
public void speak() {
super.speak();
System.out.println("SubClass: I am excellent~~~");
}
}
2. 在對父類辦法停止重寫(Override)操作的時刻,子類不許可湧現與父類同名同參然則分歧前往類型的辦法.
OverrideDemo2.java
/* 子類中不許可湧現與父類同名同參然則分歧前往類型的辦法
* 失足信息:
* OverrideDemo.java:20: error: f() in SubClass cannot override f() in SuperClass
* public int f() {
* ^
* return type int is not compatible with void
* OverrideDemo.java:19: error: method does not override or implement a method from a supertype
* @Override
* ^
* 2 errors
*/
public class OverrideDemo2 {
public static void main(String[] args) {
}
}
class SuperClass {
public void f() {
}
}
class SubClass extends SuperClass {
@Override
public int f() {
return 1;
}
}
3. 子類重寫父類的辦法的拜訪權限要年夜於或許等於父類中被重寫的辦法
OverrideDemo3.java
/* 子類重寫父類的辦法的拜訪權限要年夜於或許等於父類辦法的拜訪權限
* 失足信息:
* OverrideDemo.java:18: error: f() in SubClass cannot override f() in SuperClass
* protected void f() {
* ^
* attempting to assign weaker access privileges; was public
* 1 error
*/
public class OverrideDemo3 {
public static void main(String[] args) {
}
}
class SuperClass {
public void f() {
}
}
class SubClass extends SuperClass {
@Override
protected void f() { //把這裡的拜訪權限改成public便可
}
}
拜訪掌握符
拜訪掌握符有:public, protected, default, private
有些須要一點包(package)的常識,所以比及講包的時刻再說.