多态是同一个行为具有多个不同表现形式或形态的能力
实现多态的关键是接口
接口interface是一个抽象的类型,只提供方法的定义
实现类是一个接口的具体实现,要实现每一个接口方法的功能
多态:同一个行为具有多个不同表现形式或形态的能力
如打印可为彩色或黑白;空调可制冷或取暖
实现多态的关键:接口:面向接口编程
抽象的类型,只提供方法的定义
实现类:接口的具体体现,实现每一个接口方法的功能
根据输入内容不同动态产生不同的接口实现,实现的过程要被额外方法进行封装
通过方法处理输入数据判断,决定使用的实现类
使用不同的实现类覆写
创建接口的对象,调用接口定义的方法完成不同的输出
方法根据不同情况return new xxx(实现类)
接口 对象1 = new 实现类()或对象2.方法(数据)
接口:只提供方法的定义
接口的实现类:接口定义方法的实现
接口的实现就是可以一个接口实现多个功能,就是存在多种形态,根据你传递不同的参数调用不同的方法
多态的概念
同一个行为具有多个不同的表现形式或形态的能力,根据输入的内容不同,去产生不同的接口实现,实现多态的关键是接口
多态的前提
要有继承或实现关系
要有方法的重写
要有父类引用指向子类对象
引用变量的两种类型
编译时类型:由声明时的类型决定。
运行时类型:由实际对应的对象类型决定。
优点:
提高程序的扩展性。定义方法时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作
缺点:
不能使用子类的特有成员
接口:
抽象的类型,只提供方法的定义
实现类:
接口的具体实现,要实现每一个接口方法的功能,一个接口可以拥有多个实现类
多态:
多态是同一个行为具有多个不同表现形式或形态的能力
实现多态的关键是接口
接口是一个抽象的类型,只提供方法的定义
实现类是一个接口的具体实现,要实现每一个接口方法的功能
面向接口编程
public interface Language{
public void voice();
}
实现类1:public class Chinses implements Language{
@Override
public void voice(){
System.out.println("你好");}
}
实现类2:public class English implements Language{
@Override
public void voice(){
System.out.println("hi");}
}
接口实现:Language language = new Chinese();
language.voice();
输入:
实现多态的关键是接口
多态的原理:根据输入的内容的不同,动态地产生不同的接口实现,但是实现的过程要被某一个方法进行额外的封装
接口样例:
实现多态的关键是接口
前面是接口,后面必须是具体的实现类
1)多态是同一行为具有多个不同表现形式或形态的能力
2)实现多态的关键是接口
3)实现类是一个接口的具体表现
多态:同一个行为具有多个不同的表现形式或形态的能力,根据输入的内容不同,去产生不同的接口实现
实现多态的关键是接口
接口:是一个抽象的类型,只提供方法的定义
实现类:是一个接口的具体实现,要实现每一个接口方法的功能
一个接口可以拥有多个实现类
service进行封装(用接口接收,不同参数返回不同实现类)
implements关键字
外部只用调用接口的方法(实例化service类,调用方法,传入参数)
好比办公人类用某台打印机,使用打印功能,按了黑白打印。
public interface Language{
public void voice();
}
接口里只能定义方法的结构,不允许有方法体{}
实现类要写关键字implements
public class Chinese implements Language{
这里可以点击错误提示的灯泡,选择implement methods,选择要选的方法,点击OK
}
再写一个类,叫做CustomerService,在main方法里以接口Language开头
Language language = new English();
language.voice();
可以这样写
public Language contact(int areaCode){
if (areaCode == 86)
return new Chinese(); //这里可以return任何一个实现类
}
如果是在另一个包里,导入实现类以后,可以用接口来使用程序,而不必了解内部细节
implements实现,“实现类名 implements 接口名”
多态的实现,返回值是接口可以直接在方法中调用实现类
接口和实现类。开头是接口名,结尾是具体的实现类名
多态是同一个行为具有多个不同表现形式或形态的能力。
实现多态的关键是接口:接口是一个抽象的类型,只提供方法的定义;
实现类是一个接口的具体实现,要实现每一个接口方法的功能。
接口
多态
多态:同一个行为具有多个不同的表现形式或形态的能力,根据输入的内容不同,去产生不同的接口实现
实现多态的关键是接口
接口:是一个抽象的类型,只提供方法的定义
实现类:是一个借口的具体实现,要实现每一个接口方法的功能
一个接口可以拥有多个实现类
public interface Language{
public void voice();
}
接口里只能定义方法的结构,不允许有方法体{}
实现类要写关键字implements
public class Chinese implements Language{
这里可以点击错误提示的灯泡,选择implement methods,选择要选的方法,点击OK
}
再写一个类,叫做CustomerService,在main方法里以接口Language开头
Language language = new English();
language.voice();
可以这样写
public Language contact(int areaCode){
if (areaCode == 86)
return new Chinese(); //这里可以return任何一个实现类
}
如果是在另一个包里,导入实现类以后,可以用接口来使用程序,而不必了解内部细节
多态
多态是同一个行为具有多个不同表现形式或形态的能力;
实现多态的关键是接口
接口:(interface)是一个抽象的类型。只提供方法的定义
implements
定义一个接口
调用接口里面的方法
多态
实现多态关键是接口
实现类
1
jiekou
duotai