Java复习资料-类之间的关系

类之间的关系

类之间的关系共有六种

继承:一个类继承另一个类,也成为泛化,体现共性与特性的关系
实现:一个类实现接口中声明的方法
依赖:在一个类的方法中去操作另一个类的对象,称为第一个类依赖第二个类
关联:在一个类中使用另一个类的对象作为该类的成员变量,体现两个类之间的强依赖关系
聚合:关联的一种特例,体现整体与部分的关系(has-a)
组成:关联的一种特例,体现整体与部分之间的关系(constains-a)

继承

概念

继承是面向对象编程技术的重要基石,被继承的类成为父类,继承父类的类称为子类
继承有分单继承和多继承,Java中只支持单继承,用接口的方式实现多继承
执行继承后,子类将获得父类所有的属性和方法,并具有自身特有的属性,但父类可以隐藏某些数据,对子类提供可访问的属性和方法

语法

Java中采用关键字extends表示继承
只能有一个父类,即单继承
在没有指明extends时,默认继承的是Object类

子类对象的创建

创建过程:先分配父类空间,再分配子类空间,并初始化此类型的默认值
先执行父类的初始化和构造函数,再执行子类的初始化和构造函数
举个栗子:
在这里插入图片描述
在这里插入图片描述

域的隐藏

解决子类与父类变量重名的问题
在子类中定义了与父类具有相同名称的域,此时,子类的域将屏蔽父类的域,这种现象称为子类对父类的域的隐藏
子类中发生隐藏后,如果要访问被隐藏的域,必须在域前面加前缀super,以此表示为父类的域
发生域的隐藏后,父类的数据仍储存在内存中,只是优先访问子类的域而已

方法的重写

解决子类与父类方法重名的问题,又称方法覆盖
在类层次结构中,如果子类中的一个方法与父类中的方法有相同的方法名并具有相同数量和类型的参数列表,这种情况称为方法的覆盖
方法的重写和重载是面向对象多态性的两大体现
Java的多态性机制导致了声明的变量类型和实际引用的类型可能不一致,为准确的鉴别一个对象的真正类型,可以用instanceof关键字进行判断

类型转换

父类对象与子类对象之间的转换原则:
1.子类对象可以看作是父类对象
2.父类对象不可以看作是子类对象
3.函数参数是父亲,可以传递子类对象
4.父类对象实际指向子类对象,可以转换为子类
举个栗子:
在这里插入图片描述
在这里插入图片描述

多态

接收同一消息,表现不同形式
对于方法的覆盖,new的谁就调用谁,这就是多态
对于变量只是隐藏,this在哪个类就指向哪个类的变量,没有多态
举两个栗子:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

内部类

Java允许在一个类中定义另一个类该情况下外面的类称为外部类,里面的类称为内部类内部类是外部类的一个成员,并且依附于外部类存在
引入内部类的原因:
内部类可以隐藏起来,不为同一包的其他类所使用
内部类可以访问其所在的外部类的所有属性

种类

成员外部类:在外部类内
局部外部类:在方法中定义的内部类
静态内部类:使用staic修饰的内部类
匿名内部类:没有名字的内部类

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值