多态,接口,枚举

多态

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