小白学习Java第五天,引用类型转换、权限修饰符、匿名内部类

一、引用类型转换

多态的转型分为向上转型与向下转型两种:向上转型、向下转向。
1、向上转型:多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的。 当父类引用指向一个子类对象时,便是向上转型。向上转型是安全的,可以理解为一个小范围转到一个大范围,这种环境是可以适应的。
使用格式:

父类类型 变量名 = new 子类类型(); 
如:Animal a = new Cat();

二、向下转型:父类类型向子类类型向下转换的过程,这个过程是强制的。
一个已经向上转型的子类对象,将父类引用转为子类引用,可以使用强制类型转换的格式,便是向下转型。 使用格式:

子类类型 变量名 = (子类类型) 父类变量名;:Cat c =(Cat) a;

三、为什么要向下转型?
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误。也就是说,不能调用子类拥有,而父类没有的方法。编译都错误,更别说运行了。这也是多态给我们带来的一点"小麻烦"。所以,想要调用子 类特有的方法,必须做向下转型。或者有时候系统给你一个方法,只能传递父类的对象,这种情况下你只能通过转型来进行参数的传递。
在这里插入图片描述

二、权限修饰符

在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限, public:公共的。 protected:受保护的。 default:默认的。 private:私有的。
在这里插入图片描述
其中:不同包的子类可以理解为在一个包下有一个a1类,在这个这个包下又创建了一个a11包,下面有一个a11类,通过这两个类去相互访问,相当于a11类的爸爸是a1类的兄弟。
上述四种权限也可以理解为:我自己->我邻居->我儿子->陌生人

三、匿名内部类

匿名内部类 :是内部类的简化写法。
它的本质是一个 带具体实现的父类或者父接口的匿名的 子类对象。 开发中,最常用到的内部类就是匿名内部类了。
以接口举例,当你使用一个接口时,似乎得做如下几步操作:
1)定义子类
2)重写接口中的方法
3)创建子类对象
4)调用重写后的方法
我们的目的,最终只是为了调用方法,那么能不能简化一下,把以上四步合成一步呢?匿名内部类就是做这样的捷方式。前提匿名内部类必须继承一个父类或者实现一个父接口。
什么时候用到匿名内部类?
如果接口的实现类(或者是父类的子类)只需要使用唯一的一次,那么这种情况下就可以省略掉该类的定义,而改为使用【匿名内部类】。最后的{}算是一个没有名字的类。
格式:

new 父类名或者接口名(){ 
	// 方法重写 
	@Override public void method() { 
	// 执行语句 
	} 
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值