# 25) Inheritance Pitfalls

## Reference Variables and Object types:

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUATKz9HMHnDDsqLORr%2Fimage.png?alt=media\&token=b99ad8e1-6023-49c5-b254-6338f7de94dd)

### 1) Using a variable of the derived class to access its own object:

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUATdtGFig6DN-OygJJ%2Fimage.png?alt=media\&token=4fedecc8-5577-4034-9252-016cbec65cba)

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUATtOjtMFJE52SlVZr%2Fimage.png?alt=media\&token=5532f811-6d2a-4ed5-9699-a05a71edf060)

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAU1XugAPWsq44t_DD%2Fimage.png?alt=media\&token=e0e2848d-50f7-4635-a7c7-1a120a2cec19)

### 2) Using a variable of a superclass to access an object of a derived class:

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAUImnI_0yXxBTMYV0%2Fimage.png?alt=media\&token=97376b26-e4b0-4976-9759-d76e6ad9d6f1)

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAUPtaKMb5zx65qtQA%2Fimage.png?alt=media\&token=af96f03a-2318-4fb6-818f-64067aa88396)

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAUdmzbrt9Nr3_fhcq%2Fimage.png?alt=media\&token=0139889c-7989-4510-82f7-6d7ee56e2db2)

### 3) Using a variable of an implemented interface to access a derived class object:

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAUwyZsAMsAG1JdhFk%2Fimage.png?alt=media\&token=293c164c-7544-4757-827e-f88a8149479a)

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAV2SqET_TY0k4IKbl%2Fimage.png?alt=media\&token=15a9cc1f-0323-4493-8822-aa16860146ed)

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAVDqoNM2WIhKUjI8L%2Fimage.png?alt=media\&token=5228f0ff-df4a-4d6f-a9ad-494fdd902f49)

### 4) Need for accessing an object using the variables of its base class or implemented interfaces:

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAWGPT5vfi0pnJm8QP%2Fimage.png?alt=media\&token=c3f1dd0e-3554-4f5c-8820-a7a773de1991)

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAWMPqXtZ_UszQTU-v%2Fimage.png?alt=media\&token=32f750ec-c5e5-4713-93e1-17b7236f8670)

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAWTB2XjiYcPvbAGVh%2Fimage.png?alt=media\&token=27dd6db5-75e5-479a-8a71-85ab33c44316)

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAW_OgW2GMw-eYe59M%2Fimage.png?alt=media\&token=60bb6889-545c-4602-b0ad-c761111887d2)

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAWeAbxvc46Br5PoQm%2Fimage.png?alt=media\&token=a8b57243-b799-4cb3-a531-7ae79264d834)

### Problem:

![](https://3494582050-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSemf7mp1liQa7nfIAC%2F-LUASwJhFs0ap-Ze0CdM%2F-LUAWrSnzV-9BbfTNcwF%2Fimage.png?alt=media\&token=53cf0e4f-49cf-4118-8729-d3918f1e1ccf)
