JAVA SE基础提要--08:多态,内部类

0x01.多态

定义:同一对象,在不同的时候体现出不同的状态。

格式:

父类名称 对象名=new 子类名称
例:FU fa=new ZI();
//父类类型既可以是继承,也可以是实现接口

优点:

1.提高代码的可拓展性。

2.把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

3:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

注意事项:

1.多态创建的对象不能访问子类的特有的成员变量和子类特有的成员方法,只能访问子类覆盖重写父类的方法。

(通用访问成员变量的方法:创建对象时等号左边是谁就优先用谁,没有则向上找。)

2.只要子类重写了父类的方法,则使用子类的重写后的方法。

(访问成员方法:编译看左,运行看右)

多态中的向上转型:

含义:本身是子类类型,向父类类型转换的过程,这个过程是多态默认的。

多态中的向下转型:

含义:父类类型向子类类型转换的过程。将多态的父类对象还原成本来的子类对象。(强制转换)

格式:

子类名称 对象名=(子类名称)原本父类对象名

优点:解决了多态不能访问子类特有的成员变量和成员方法。

instanceof 关键字:

含义:给引用变量做类型的校验。

格式:

变量名 instanceof 数据类型
//属于返回true ,不属于返回false

用途:向下转型的时候先对对象检验以下是否是原来的对象。

0x02.final关键字

含义:不可再改变。

修饰类:类不可再变。

修饰方法:方法不能重写。

修饰局部变量:只能赋值依次,不能改变,对于对象等引用类型来说,可以改变里面的成员变量但不可以改变该对象的地址值。

修饰成员变量:若用final修饰后未赋值,则可以赋值一次,然后不能改变,若修饰后赋值了,则不能再变。

规范:用final关键字修饰的变量的名字都要大写。

0x03.权限修饰符

1.public 公共的

2.protected  受保护的

3.(default) 空的

4.private  私有的

相关权限说明:

规范: 

1.一般成员变量用private修饰。

2.一般构造方法用public修饰。

3.一般成员方法用public修饰。

0x04.内部类

定义:将A类定义于B类中,A为内部类,B为外部类。

格式:之间class接内部类名称。

成员内部类:

定义:在类中,方法外的类。可以有其权限修饰符。

访问特点:

1.内部类可以之间访问外部类的所有成员。

2.外部类访问内部类需要创建内部类的对象。(正常创建对象)

3.创建内部类对象:

外部类名.内部类名 对象名=new 外部类名().new 内部类名();

局部内部类:

定义:在类中的方法中定义的类。不可以有权限修饰符。

特点:

1.超出所在方法将不能使用,只能在方法中创建对象使用。

2.局部内部类如果想访问所在方法的成员变量,该成员变量只能是有效final的,就是这个值不能改变的。

匿名内部类:

含义:如果接口的实现类或者父类的子类只需要使用唯一的一次,那么可以省略该类的定义,改为使用匿名内部类。也是一个局部内部类。

前提:必须实现一个接口或者继承一个父类。

格式:

接口名称 对象名 =new 接口名称(){
    //覆盖重写所有抽象方法
};
直接使用对象名.方法

注意事项:

1.匿名内部类在创建对象的时候只能使用唯一的一次。

2.和匿名对象同时使用时只能调用一次方法。

本章结束。

发布了19 篇原创文章 · 获赞 7 · 访问量 411

猜你喜欢

转载自blog.csdn.net/ATFWUS/article/details/104316785