package extend;
public
class
people
public
void
setage
(int age)
public
people()
public
people
(int age)
public
void
show()
/* fianl關鍵字的作用
fianl修飾類:該類不能被繼承(不能有子類,但是可以有父類)
final修飾方法:該方法不能被重寫
final修飾變數:表明該變數是乙個常量,不能再次賦值
fianl修飾基本資料型別變數
final 修飾指的是基本型別的資料值不能發生改變
final修飾引用資料型別變數
final 修飾指的是引用型別的位址值不能發生改變,但是位址裡面的內容是可以發生改變的
*//* static修飾的特點:
1. 被類的所有物件共享,這也是我們判斷是否使用靜態關鍵字的條件
2. 可以通過類名呼叫當然,也可以通過物件名呼叫【推薦使用類名呼叫】
static的訪問特點
非靜態的成員方法
* 能訪問靜態的成員變數
* 能訪問非靜態的成員變數
* 能訪問靜態的成員方法
* 能訪問非靜態的成員方法
靜態的成員方法
* 能訪問靜態的成員變數
* 能訪問靜態的成員方法
總結成一句話就是:
靜態成員方法只能訪問靜態成員
*/}
package extend;
public
class
student
extends
people
public
void
setheight
(int height)
@override
public
intgetage()
@override
public
void
setage
(int age)
public
student()
public
student
(int age)
@override
//方法重寫宣告
public
void
show()
}
package extend;
public
class
test
}
package duo;
public
class
animal
public
animal
(string name,
int age)
public string getname()
public
void
setname
(string name)
public
intgetage()
public
void
setage
(int age)
public
void
eat(
)}
package duo;
public
class
dogextends
animal
public
dog(string name,
int age)
@override
public
void
eat(
)}
package duo;
public
class
catextends
animal
public
cat(string name,
int age)
@override
public
void
eat(
)}
package duo;
public
class
demo
}
package duo;
/*抽象類和介面的區別
- 成員區別
- 抽象類
變數,常量;有構造方法;有抽象方法,也有非抽象方法
- 介面
常量;抽象方法
- 關係區別
- 類與類
繼承,單繼承
- 類與介面
實現,可以單實現,也可以多實現
- 介面與介面
繼承,單繼承,多繼承
- 設計理念區別
- 抽象類
對類抽象,包括屬性、行為
- 介面
對行為抽象,主要是行為
*/public
abstract
class
people
public
people
(string name,
int age)
int i=10;
public
abstract
void
show()
;}
package duo;
public
class
student
extends
people
public
student
(string name,
int age)
@override
public
void
show()
}
package jie;
public
inte***ce
animal
package jie;
public
class
dogimplements
animal
}
package jie;
public
inte***ce
inter1
package jie;
public
inte***ce
inter2
package jie;
public
inte***ce
inter3
extends
inter1
,inter2
package jie;
/* * 類與類的關係
* 繼承關係,只能單繼承,但是可以多層繼承
* 類與介面的關係
* 實現關係,可以單實現,也可以多實現,還可以在繼承乙個類的同時實現多個介面
* 介面與介面的關係
* 繼承關係,可以單繼承,也可以多繼承
*/public
class
demo
extends
object
implements
inter1
,inter2,inter3
package inclass;
/* 內部類的訪問特點
* 內部類可以直接訪問外部類的成員,包括私有
* 外部類要訪問內部類的成員,必須建立物件
*/public
class
demo1
}*///成員內部類
private
class
test
}public
void
show2()
}
package inclass;
public
class
demo2
} test t=
newtest()
; t.
show()
;}}
package inclass;
public
inte***ce
inter
package inclass;
public
class
demo3
}.show();*/
//匿名內部類
inter i=
newinter()
};i.
show()
;}}
package inclass;
public
class
test
}
多型 介面 內部類
多型的機制問題,參考這篇博文,講的通俗易懂,大概為下 在建立子物件時,呼叫子類構造器前會呼叫父類構造器 即建立乙個子物件,這個子物件中隱含著乙個父物件。多型引用的指標指向的是子物件中的這個父物件,而父物件中的方法指標指向方法區的哪個方法,是根據建立的子物件的型別決定的,當你建立這個子物件時,該子物件...
介面,多型,內部類筆記
介面型別的應用 用於介面指向型別的子類物件 packagecom.sdut.day2 inte ceusb public classbookpc public static voiduseusb usb u classupanimplementsusb public voidclose classm...
內部類繼承
成員內部類的子類可以是內部類,也可以不是內部類 當成員內部類的子類不是內部類或子類雖是內部類但與其父類不在同乙個外部類時,子類的構造方法第一句要顯式新增如下的語句 外部類物件引用.super 引數 這裡的外部類指父類所在的外部類編譯器預設給成員內部類的構造方法傳入乙個引數,該引數是內部類所依附的外部...