Java修炼——接口详解_接口的特征_使用接口的意义

接口中可以包含的内容:
抽象法和非抽象方法(jdk1.8,必须使用default的关键字),属性(public static final)常量。

接口和类的关系
1.(继承了接口)类必须去实现接口中的抽象方法。

package com.bjsxt.interfac;

public abstract class Person {
	public abstract void show();
}

package com.bjsxt.interfac;

public class Student extends Person implements Play{

	@Override
	public void show() {
		// TODO Auto-generated method stub
		
	}

}

2.一个类既有继承也有实现的话,继承在前,实现在后。

public class Student extends Person implements Play

3.如果父类和接口都有一样的方法,则子类是调用父 类的方法而非接口的。

package com.bjsxt.interfac;

public interface Play {
	public void show();
}

implements com.bjsxt.interfac.Person.show

4.如果父类和接口中的方法名称一样时,在子类调用时,要构成方法分重载。
package com.bjsxt.interfac;

public class Student extends Person implements Play{

	@Override
	public void show() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void show(String songName) {
		// TODO Auto-generated method stub
		
	}

}

package com.bjsxt.interfac;

public interface Play {
	public void show(String songName);
	
}

接口的特征_使用接口的意义
接口的特征:
1.传递性

package com.bjsxt.interfac;

public interface InterA {
	public void show();
}

interface InterB extends InterA{
	
}

interface InterC extends InterB{
	
}

class Impl implements InterC{

	@Override
	public void show() {
		// TODO Auto-generated method stub
		
	}
	
}


2.继承性(多继承)
package com.bjsxt.interfac;

public interface InterA {
	public void show();
}

interface InterB {
	
}

interface InterC extends InterB, InterA{
	
}

class Impl implements InterC{

	@Override
	public void show() {
		// TODO Auto-generated method stub
		
	}
	
}

接口使用的意义:
可以实现设计与实现的分离,抽象出n多不同类的共同点。体现的是实现的能力。

鸟,飞机,球(多态)都是实现接口(Flay)调用相同的方法Flaying(),输出结结果,各不相同。

package com.bjsxt.interfacedemo;

public interface Flay {
	public void Flaying();
}

class Airplane implements Flay{

	@Override
	public void Flaying() {
		System.out.println("飞机在天上飞");
	}
	
}

class Bird implements Flay{

	@Override
	public void Flaying() {
		System.out.println("鸟在天上飞");
	}
	
}

class Ball implements Flay{

	@Override
	public void Flaying() {
		System.out.println("球在天上飞");
	}
	
}

package com.bjsxt.interfacedemo;

public class TestFlay  {
	public static void main(String[] args) {
		//接口类型指向实现类的对象
		Flay air = new Airplane();
		Flay ball =new Ball();
		Flay bird=new Bird();
		//调用相同的方法
		air.Flaying();
		bird.Flaying();
		ball.Flaying();
		//运行结果各不相同
	}
}

Java修炼——接口详解_接口的特征_使用接口的意义_第1张图片
总结(使用接口实现多态的步骤)
1.编写接口
2.实现类实现接口中的方法
3.接口类型new实现类对象
面向接口的编程。

你可能感兴趣的:(Java学习,不忘初心,方得始终)