多态,接口,枚举
其他
2021-02-11 10:21:06
阅读次数: 0
多态
1.定义:同一种行为,具有多个不同的表现形式
2.前提条件:必须继承或者实现,必须有的重写
3.语法:父类的类名 对象名=new 子类的类名(实参列表);
子类的对象指向父类的引用
4.特性:
一旦有多态,分区编译和运行(编译看左,运行看右)
编译看左边:对象只能调用父类中存在的内容(子类独有的是调用不到的) 名义类型
运行看右边:运行的时候看实际类型是什么?调用的内容是调用实际类型 实际类型
属性和静态方法是没有多态的!
因为:属性和静态方法是没有重写和概念的
在调用属性和静态方法的时候,只看编译时类(名义的类型)
接口
JDK7.0之前 接口全部是抽象方法写的
JDK8.0 新增了特性
默认方法:default修饰符修饰的方法
就相当于抽象中的普通方法(实现类可以继承下去的,实现类就可以重写该方法)
静态方法:static修饰的方法
只能采用接口名去调用
接口的应用:
类和类之间:单继承
类和接口之间:多实现
接口和接口之间:多继承
语法:interface Fly extends MyInterface,MyInter
注意:Fly的实现类只需要实现Fly接口以及其以上所有接口中的所有抽象方法
接口的知识点
定义:访问修饰符 interface 接口名{}
公有的和缺省的
特性:
a.接口的所有的属性默认都是公有的静态变量
b.接口中的所有方法都是默认的抽象方法
c.如何使用接口
应该通过子类(实现类)去使用
使用方法:实现类 implement 接口
实现类需要实现接口中所有的抽象方法
d.接口中的可以实例化对象吗?不可以
e.接口中有构造器吗?没有
f.一个类的实现的接口可以有N个
使用方法:实现类需要实现所有接口中的所有方法
g.一个类中实现了N个接口,还可以为其设置父类吗?可以
枚举
JDK1.5之前的枚举实现方法:
一个类只提供有限个对象
a.构造器私有化
b.对外提供若干个公有的静态的本类类型的常量对象
JDK1.5之后引入的枚举类型:
采用enum修饰的类:
特性:
a.构造器默认的就是私有的
b.在枚举的首行直接写对象的名,如果是多个对象,采用逗号隔开
c.如果想要采用构造器对属性赋值的话,需要在常量对象名后追加小括号(传递参数)
枚举类型默认是enum类
枚举的常用方法(来自于enum类)
toString() 返回对象名(枚举可以选择对其进行重写)
name() 返回对象名(final修饰)
Ordinal 返回该对象的索引位置
static values() 返回枚举类中的所有的对象
static valueOf(String name)根据对象名获取枚举对象
枚举的扩展
枚举可以加()构造器
{ } 实例方法
转载自blog.csdn.net/Radiation_x/article/details/112718854