欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

灵雪java13

程序员文章站 2023-03-25 20:53:00
day13今日内容:引用类型的转换多态的转型分为向上转型与向下转型两种情况:向上转型:多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的。当父类引用指向一个子类对象的时候,便是向上转型格式:父类类型 变量名 = new 子类类型();如:Animal animal = new Cat();向下转型:父类类型向子类类型向下转换的过程,这个过程是强制的,一个已经向上转型的子类对象,将父类引用转为子类引用,可以使用强制类型转换的格式,便是向下转型格式;子类类型 变量名 =(子类类型)...

day13

今日内容:

引用类型的转换
多态的转型分为向上转型与向下转型两种情况:
向上转型:多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的。当父类引用指向一个子类对象的时候,便是向上转型
格式:父类类型 变量名 = new 子类类型();
如:Animal animal = new Cat();
向下转型:父类类型向子类类型向下转换的过程,这个过程是强制的,一个已经向上转型的子类对象,将父类引用转为子类引用,可以使用
强制类型转换的格式,便是向下转型
格式;
子类类型 变量名 =(子类类型)父类变量名;
如:Cat cat = (Cat)animal;

为什么要转型?
当使用多态方式调用方法时,首先会检查父类中是否含有该方法,如果没有则编译错误,
进一步说,不能直接调用子类拥有而父类没有的方法。
所以想要调动子类特有的方法必须向下转型。

转型的异常:
两个类型没有任何继承关系,不符合类型转换的定义
为了避免ClassCastException的发生,java提供了instanceof关键字,给引用变量做类型的校验。
格式:
变量名 instanceof 数据类型
如果变量属于该数据类型,则返回true;
如果该变量不属于该数据类型 返回false;

内部类:
在描述事物时,若一个事物内部还包含其他事物时,就可以使用内部类这种结构。
什么是内部类:将一个类a定义在另一个类b里面,里面的那个类a就称为内部类,类b就称为外部类。
成员内部类:定义在类中方法外的类,
格式:public class OuterClassName{

            class InnerClassName{

            }
}
如;汽车事物和引擎事物
car就是外部类  Engine就是内部类
public class Car{

    class Engine{

    }
    public void move(){
    }


}

访问特点:
1.内部类可以直接访问外部类的成员,包括私有成员,
2.外部类要访问内部类的成员,必须要建立在内部类的对象基础上,
创建内部类对象的格式:
外部类名.内部类名 对象名 = new 外部类型().new 内部类型();
代码演示:
备注:内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是
.class文件的名称是:外部类名 内 部 类 名 如 B o d y 内部类名 如Body BodyHeart.class

匿名内部类(重点)
匿名内部类:shi内部类的一种简化写法,他的本质是一个(带具体实现的)(父类或者父接口)(匿名)子类的对象
在开发中,最长用的内部类就是匿名内部类
示例:
以接口举例,当你使用一个接口的时候,你需要做如下操作:
1.定义子类
2.重写接口中的方法
3.创建子类对象
4.调用重写后的方法
我们的目的就是想调用接口中的某个方法,以上4步可以简化成一部操作
前提条件:匿名内部类必须是继承一个父类或者实现一个父接口
格式:
new 父类名 或者 父接口名(){
//方法的重写
@override
public void method(){
//方法体内容
}
}
举例:
以接口为例,匿名内部类的使用。

本文地址:https://blog.csdn.net/weixin_42555469/article/details/110220066

相关标签: java