码迷,mamicode.com
首页 > 编程语言 > 详细

java第五章 子类与继承

时间:2015-10-27 21:56:26      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

 5.1子类与父类

1   java不支持多重继承,即一个子类不可以从多个父类中同时继承,而C++中可以。

人们习惯地称子类与父类的关系式“is—a”的关系

2   再类的声明过程中,通过关键字extends来定义一个类的子类

eg:    class 子类名字 extends 父类名字{

      }

3   java中的类按照继承关系可以形成树形结构,在这个树形结构中,根节点是Object类(Object类是java。lang包中的类),即Object类是所有类的祖先类,

每个类除了object类有且仅有一个父类,但是一个类可以有零个或多个子类,

如果一个类在声明的时候没有使用extend声明,那么这个类默认为objetc类的子类

eg:    class a与class a  extends   Object    这两种声明是等价的

 

5.2   子类的·继承性

如果子类与父类在同一个包中,那么子类会继承父类中除了private属性外其他所有的变量和方法,

如果子类与父类不在同一个包中,那么子类会继承父类中除了private和default外其他属性的变量和方法;

 

对于protected属性的访问权限

比如·a是b的父类  b是c的父类  c是d的父类  在other类中使用d类创建的一个对象,如果使用这个对象调用的是d类中的protectde属性的变量或者方法,如果d类与other类在同一个包中,那么就可以访问,

如果使用对象调用的是d类的祖先类,如果追溯到祖先类,如果祖先类和other类在一个包中,那么便可以调用protectde属性的变量和方法

 

5.3子类与对象

1:在使用子类创建对象的时候,系统会为对象分配变量,并且为变量分配内存,所有子类中定义的变量与其父类的变量都会分配内存,但是这些变量并不都属于对象的,只有可以对象访问的变量才属于对象拥有的变量

eg:  比如在同一个包中,父类的private类型的变量也会分配内存,但是这些变量并不属于子类创建的对象所拥有,,同理,如果不在同一个包中,default属性的变量也同样2是这个道理

2:instanceof运算符instanceof运算符是一个双目运算符,左边的操作元氏对象,右边的操作元是类,如果左边的对象时右边的类创建的对象,或则是右边类的子创建的对象

那么返回的值是true,否则返回的值是false

 

5.4成员变量的隐藏和方法重写

成员变量的隐藏

只要子类新定义的变量和父类的变量重名,那么父类的变量便会被隐藏,即使类型不一样也可以

1子类继承的方法只能操作子类继承和隐含的成员变量吗,子类新定义的方法可以操作子类继承和子类新声明的成员变量,但是无法操作隐含的成员变量,(如果操作隐含的成员变量,需要使用super关键字来进行修饰,在后面还会介绍)

 

方法重写

1重写父类的方法的时候,不可以降低父类方法的访问权限,但是可以提高访问权限

2  JDK1.5对重写的更改,

子类重写方法的类型可以是父类方法类型的子类型,即不必完全一致,比如说,父类的方法类型是people类,子类的重写方法类型可以是student类,前提是student类是people类的子类

java第五章 子类与继承

标签:

原文地址:http://www.cnblogs.com/13224ACMer/p/4915527.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!