Java面向对象(3)共三次

多态

概念:

多种形态去完成某种行为而产生的不同状态

定义:

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为

如何使用多态

使用多态思路:

编写父类 编写子类,子类重写父类方法 运行时,使用父类的类型

实现多态的两种形式:

使用父类作为方法形参实现多态

使用父类作为方法返回值实现多态

小结

类型转换:
向上转型——子类转换为父类,自动进行类型转换

向下转型——父类转换为子类,结合instanceof运算符进行强制类型转换

实现多态的两种方式:

使用父类作为方法形参实现多态

使用父类作为方法返回值实现多态

使用多态的好处:

多态可以减少类中代码量,可以提高代码的可扩展性和可维护性

引用变量的两种类型: 编译时类型(模糊一点,一般是一个父类)由声明时的类型决定。

运行时类型(运行时,具体是哪个子类就是哪个子类) 由实际对应的对象类型决定。

多态的存在要有3个必要条件:

要有继承,要有方法重写,父类引用指向子类对象

多态性是OOP中的一个重要特性,主要是用来实现动态联编的,换句话说,就是程序的最终状态只有在执行过程中才被决定而非在编译期间就 决定了。这对于大型系统来说能提高系统的灵活性和扩展性。

多态的存在的三个必要条件

要有继承 要有方法重写  父类引用指向子类对象

引用数据类型的类型转换

子类转换为父类:自动转换

上转型对象不能操作子类新增的成员变量和方法

上转型对象可以操作子类继承或重写的成员变量和方法

 如果子类重写了父类的某个方法,上转型对象调用该方法时,是调用的重写方法。

 父类转换为子类:强制转换

接口

接口是抽象方法和常量值的定义的集合。

接口的特性:

接口不可以被实例化

实现类必须实现接口的所有方法

实现类可以实现多个接口

接口中的变量都是静态常量

接口没有构造方法。构造方法用于创建对象

多个无关的类可以实现同一个接口

一个类可以实现多个无关的接口

小结

为什么需要接口?接口和抽象类的区别? 

接口就是比“抽象类”还“抽象”的“抽象类” ,可以更加规范的对子类迚行约束。 全面地专业地实现了:规范和具体实现的分离。

接口就是规范,定义的是一组规则

接口相关规则:

接口中所有方法都是抽象的

即使没有显式的将接口中的成员用public标示,也是public访问类型的

接口中变量默认用 public static final标示,所以接口中定义的变量就是全 局静态常量

 可以定义一个新接口,用extends去继承一个已有的接口

可以定义一个类,用implements去实现一个接口中所有方法。

 可以定义一个抽象类,用implements去实现一个接口中部分方法

接口格式

定义接口:

[访问修饰符] interface 接口名 [extends 父接口1,父接口2…] {
–常量定义
–方法定义
//总是public static final
//总是:public abstract
}

实现接口:

子类通过implements来实现接口中的规范

接口不能创建实例,但是可用于声明引用变量类型。

一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的

Java的类只支持单继承,接口支持多继承 

内部类

将一个类定义置入另一个类定义中就叫作“内部类” 

类中定义的内部类特点 :

 内部类作为外部类的成员,可以直接访问外部类的成员(包括private成员),反之则不行

 内部类做为外部类成员,可声明为private、默认、protected戒public

内部类成员只有在内部类的范围之内是有效的

 用内部类定义在外部类中不可访问的属性。这样就在外部类中实现了比外部类的private还要小 的访问权限。

编译后生成两个类: OuterClass.class 和OuterClass$InnerClass.class

内部类分类 :

成员内部类 静态内部类 方法内部类 匿名内部类 内部类 

匿名内部类Anonymous :

可以实现一个接口,戒者继承一个父类

 只能实现一个接口

 适合创建那种只需要一次使用的类,不能重复使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值