1.サブクラスのオブジェクトを特長:
あなたはサブクラスのコンストラクタでオブジェクトのサブクラスを作成する場合は、サブクラスの変数宣言のないメンバーのみがメモリを割り当てられ、親クラスのメンバ変数もメモリ空間が割り当てられ、しかし、場合にのみ、変数の一部のメンバーは、サブクラスとして変数に割り当てられていることをサブクラス継承。しかし、なぜ変数がメモリを割り当てられている継承するべきではないのですか?そこ操作の一部である親クラスから継承サブクラスのメソッドの一部であってもよいが、それは方法変数を継承することができるからです。だから我々は必要です。
class People{
private int leg = 2;
int money;
void action(){
leg = 5;
System.out.println("I am a man");
}
}
class Man extends People{
int height;
}
public class human{
public static void main(String args[]){
Man you = new Man(); /*这条语句的执行意味着,money,leg,height,
action都被分配了空间*/
you.action();//这条语句的执行说明了子类可以通过继承的方法来操作没继承来的变量
}
}
(実際にはシンボル決意である)2.instanceof演算子
左オペランドが右である場合にinstanceof演算子は、左オペランドの目的であるJavaの一意のバイナリ演算子であり、オペランドが右のクラスは、ありますオブジェクトクラスまたはサブクラスを作成する場合、演算結果が真であるのinstanceof、それ以外の場合はfalseです。
class People{
private int leg = 2;
int money;
void action(){
leg = 5;
System.out.println("I am a man");
}
}
class Man extends People{
int height;
}
public class human{
public static void main(String args[]){
Man you = new Man(); /*这条语句的执行意味着,money,leg,height,
action都被分配了空间*/
if(you instanceof Man)
{
System.out.println("I am a man");
}
}
}
结果会输出:I am a man
如果将 if(you instanceof Man)中的Man改为People呢?
隠れ変数の3メンバー
メンバ変数名が宣言され、(型宣言が異なっていてもよい)、同一のメンバ変数に親クラスから継承の名前としては、この場合には、サブクラスの皮は、(メンバ変数を継承しますこれは隠されたメンバーが使用できないことを意味するものではない、我々はまだ)使用にsuperキーワードを使用することができます。
:これは、メンバ変数を継承サブクラス皮は次の通りである特徴
親クラスと同じ名前の作動のメンバ変数の方法(1)サブクラスオブジェクトおよびサブクラス自身の定義は、メンバ変数サブクラス再宣言を指します。
(2)サブクラスオブジェクトがまだ親クラスから継承された操作サブクラス隠されたメンバ変数たinvoke、メンバ変数サブクラス継承操作の方法は、サブクラスによって継承されたまたは非表示のメンバ変数でなければならないことができます。
class People{
private int leg = 2;
int money;
void action(){
leg = 5;
System.out.println("I am a man");
}
}
class Man extends People{
int height;
int money = 5;
}
public class human{
public static void main(String args[]){
Man you = new Man(); /*这条语句的执行意味着,money,leg,height,
action都被分配了空间*/
you.action();//这条语句的执行说明了子类可以通过继承的方法来操作没继承来的变量
System.out.println(you.money);//People里的变量money被隐藏
}
}
结果为:I am a man
5
4.(オーバーライドメソッド)の書き換えの方法
皮によって継承オーバーライドメソッドのサブクラス。サブクラスは親クラスを継承することができた場合は、親クラスのステータスと動作の変更を上書きすることができ、サブクラスによって、缶隠す継承されたメソッドを書き換えることにより、この方法は、サブクラスのメソッドをオーバーライドする権利を持っています自分の状態や行動のために。
class People{
private int leg = 2;
int money;
void action(){
leg = 5;
System.out.println("I am a man");
}
}
class Man extends People{
int height;
int money = 5;
void action(){
System.out.println("I am a hunman");
}
}
public class human{
public static void main(String args[]){
Man you = new Man(); /*这条语句的执行意味着,money,leg,height,
action都被分配了空间*/
you.action();//这条语句的执行说明了子类可以通过继承的方法来操作没继承来的变量
System.out.println(you.money);//People里的变量money被隐藏
}
}
结果为:I am a human
5
5.superキーワード
スーパー隠されたメンバ変数やメソッドを操作する(1)
class People{
private int leg = 2;
int money;
void action(){
leg = 5;
System.out.println("I am a man");
}
}
class Man extends People{
int height;
int money = 5;
void action(){
System.out.println("I am a hunman");
}
}
public class human{
public static void main(String args[]){
Man you = new Man(); /*这条语句的执行意味着,money,leg,height,
action都被分配了空间*/
you.action();//这条语句的执行说明了子类可以通过继承的方法来操作没继承来的变量
System.out.println(super.money);//People里的变量money被隐藏
}
}
结果为:I am a human
0
(2)親クラスのスーパーコンストラクタの呼び出しを使用して
、オブジェクトがサブクラスのコンストラクタで作成され、サブクラスのコンストラクタは、常に親クラスのコンストラクタを呼び出すことが第一であるサブクラスのコンストラクタであれば親クラスのコンストラクタの有意な使用ことを示し、サブクラスは引数なしで親クラスのコンストラクタを呼び出します。
サブクラス場合、サブクラスは親クラスのコンストラクタを呼び出すためにそのスーパーコンストラクタで使用する必要があるので、サブクラスは、親クラスのコンストラクタを継承しませんが、スーパーは、最初の文のサブクラスのコンストラクタでなければならないので、コンストラクタがスーパー文を書いていない、コンパイラがデフォルトになります。
6.finalキーワード
最後の意味を変更することはできません。名前が示すように、このキーワードでクラス変数を変更し、変更することはできません。
だから、:最後のクラスが継承することはできません、最後の変数は定数に起因する定数は、再度変更操作中に許可され、その文の定数は、価値を与えることが必要です。
概要を学ぶ上で、このような不合理な存在として、個人含まれ、指摘お互いから学ぶことを歓迎。