Java多态和内部类


一、多态

1、定义:某一类事物的多种存在形态。(继承是多态的实现基础)

2、程序中体现:父类或者接口的引用指向或者接收自己的子类对象。

3、好处和作用:多态的存在提高了程序的扩展性和后期可维护性。

4、多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子

类中特有的方法。

5、前提:需要存在继承或者实现关系,要有覆盖操作。

6、多态的特点:

1成员函数:编译时:要查看引用变量所属的类中是否有所调用的成员。在运行时:要查看对象所属的类中是否有

所调用的成员。

2成员变量:只看引用变量所属的类。

3静态函数:编译时期:参考的是引用型变量所属的类中是否有调用的成员。运行时期:也是参考引用型变量所属

的类中是否有调用的成员。

二、引用类型转换

1、向上类型转换(隐式/自动类型转换),是小类型到大类型的转换

2、向下类型转换(强制类型转换),是大类型到小类型的转换

3、instanceof运算符,避免类型转换的安全性问题


三、Object类

1、所有类的直接或者间接父类,Java认为所有的对象都具备一些基本的共性内容,这些内容可以不断的向上抽取,

最终就抽取到了一个最顶层的类中的,该类中定义的就是所有对象都具备的功能。

2、Object类中的方法,适合所有子类。

3、方法:

1,boolean equals(Object obj):用于比较两个对象是否相等,其实内部比较的就是两个对象地址。而根据对象的属

性不同,判断对象是否相同的具体内容也不一样。所以在定义类时,一般都会复写equals方法,建立本类特有的判断

对象是否相同的依据。

2,String toString():将对象变成字符串;默认返回的格式:类名@哈希值 = getClass().getName() + '@' + Integer.toHexString(hashCode())。为了对象对应的字符串内容有意义,可以通过

复写,建立该类对象自己特有的字符串表现形式。 

3,Class getClass():获取任意对象运行时的所属字节码文件对象。

4,int hashCode():返回该对象的哈希码值。支持此方法是为了提高哈希表的性能。

四、内部类

1、将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类)。

2、访问特点:内部类可以直接访问外部类中的成员,包括私有成员;而外部类要访问内部类中的成员必须要建立内

部类的对象。

3、定义内部类的原因:类是用于描述事物的,而事物中如果还有具体的事物,而且这个内部的事物在访问着所属事

物中的内容。这时这个内部的事物,也需要用到类来描述。这个类就是内部类。

五、匿名内部类

1、就是内部类的简化写法。就是建立一个带内容的外部类或者接口的子类匿名对象。

2、前提:内部类可以继承或实现一个外部类或者接口。

3、格式为:new 外部类名或者接口名(){覆盖类或者接口中的代码,(也可以自定义内容。)}

4、匿名内部类使用场景:当接口类型参数,该接口中方法不超过3个,可以使用匿名内部类作为函数的参数进行传

递,这样简化了书写。但是接口方法较多时,不要使用匿名内部类。影响阅读性。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值