Oracle培训(九)——Core Java第九章知识点总结——接口
程序员文章站
2024-01-22 21:45:04
...
Core Java第九章知识点总结——接口
知识点预览
接口的概念
接口的多继承
子类的多实现
使用接口的好处
接口的概念
1. 什么是接口
接口是特殊的抽象类
属性:公开 静态 常量
抽象类
方法:公开 抽象
2.interface关键字(abstract class)
a) 接口------编译------->.class文件
b) 特殊抽象类
publicstatic final
c) 可省略
public abstract
d) 接口:可声明引用,不能创建对象抽象类可定义构造方法,但接口不可,而且不会提供默认的。
3. implements关键字
a)实现接口--------->所有方法均实现
b) MyInterface m1 = new MyClass();
c) 接口的特点
i. 接口的继承
1. 接口之间继承:extends
package chp9.ex03;
/**
*
* 说明:本程序演示了接口的继承
*/
interface IA {
void m1();
}
interface IB extends IA{
void m2();
}
class MyClass implements IB{
public void m1(){
System.out.println("this is m1()");
}
public void m2(){
System.out.println("this is m2()");
}
}
public class TestInterface1 {
public static void main(String args){
MyClass m1 = new MyClass();
IA m2 = new MyClass();//多态的使用
IB m3 = new MyClass();//多态的使用
}
}
2.接口和多态密不可分
接口的多继承
package chp9.ex04;
/**
*
* 说明:本程序演示了接口的多继承
*/
interface IA {
void m1();
}
interface IB {
void m2();
}
interface IC extends IA,IB{
void m3();
}
class MyClass implements IC{
public void m1(){
System.out.println("this is m1()");
}
public void m2(){
System.out.println("this is m2()");
}
public void m3(){
System.out.println("this is m3()");
}
}
public class TestInterface1 {
public static void main(String args){
MyClass m1 = new MyClass();
IA m2 = new MyClass();
IB m3 = new MyClass();
IC m4 = new MyClass();
}
}
子类的多实现
1. 子类的多实现
2.子类的多实现的同时还可以继承一个父类
extends写在implements之前
class MyClass extends CCimplements IA,IB{
}
package chp9.ex06;
/**
*
* 说明:本程序演示了类的继承和多实现
*/
interface IA {
void m1();
}
interface IB {
void m2();
}
class CC{
void m3(){};
}
class MyClass extends CC implements IA,IB {
public void m1(){
System.out.println("this is m1()");
}
public void m2(){
System.out.println("this is m2()");
}
//方法的覆盖
public void m3(){
System.out.println("this is m3()");
}
}
public class TestInterface1 {
public static void main(String[] args){
MyClass m1 = new MyClass();
System.out.println(m1 instanceof IA);
System.out.println(m1 instanceof IB);
System.out.println(m1 instanceof CC);
}
}
使用接口的好处
1.增加程序的通用性
a) 声明引用时要使用接口类型
b) 方法的参数要什么成接口类型
c) 方法的返回值要声明成接口类型
2.接口实现了特殊的多继承
3.解耦合(最主要的作用)
通过接口把强耦合转化为弱耦合
无接口:
有接口:
相机为什么不用抽象类:这样也造成了多继承
为什么手机不继承相机:普通手机也有照相功能
package chp9.ex07;
/**
*
* 说明:本程序演示了接口的好处——解耦合
*/
public class TestBuble {
public static void main(String args[]){
RedBuble red = new RedBuble();
GreenBuble green = new GreenBuble();
Lamp l = new Lamp();
l.setBuble(red);
l.on();
l.setBuble(green);
l.on();
}
}
interface Buble{
void light();
}
class RedBuble implements Buble{
public void light(){
System.out.println("red shine");
}
}
class GreenBuble implements Buble{
public void light(){
System.out.println("green shine");
}
}
class Lamp {
private Buble buble;
//安装灯泡的灯口
public void setBuble(Buble buble){
this.buble = buble;
}
//开灯
public void on(){
buble.light();
}
}
上一篇: 微信支付JAVA后台可直接使用
下一篇: 拉普拉斯-Laplacian