java编程思想 抽象类和接口

接口c++对接口和内部类只有简介的支持,但在java中有队这些类的直接支持

 

1 ,抽象类 :  如果一个类包含一个或多个抽象方法,该类必须限定为抽象类(否者编译器报错)

 

抽象方法 在方法中仅有声明而没有方法体 

 

package com.wj.Interface;

//类包含抽象方法,此类必须声明为抽象
public abstract class AbstractClass {

	public void play(String str) {
		System.out.println(str);
	}

	// 抽象方法,只有实体 没有实现
	abstract void play();
}

package com.wj.Interface;

/**
 * 
 */
public class AbstractDemo extends AbstractClass {
	// 抽象类不能直接new 对象 必须要有子类继承 在子类中实现抽象类中的抽象方法
	@Override
	void play() {
		System.out.println("实现抽象类中的方法");
	}

	public static void main(String[] args) {
		// 常见对象
		AbstractDemo demo = new AbstractDemo();
		// 调用抽象类中的方法
		demo.play("java");
		// 调用抽象方法的实现
		demo.play();
	}

}

 运行结果:

java

实现抽象类中的方法

 

2,接口  implement  接口的多重继承

定义两个接口;子接口继承这两个接口  ,  类实现子接口

被继承的接口

/**
 * 
 * @author Administrator
 *定义接口  抽象方法
 */
public interface AbstrctIter1 {
	public void getAll();
	public void getSize();
	public void getName();
}

被继承的接口
package com.wj.Interface;

/**
 * 
 * @author Administrator
 *定义接口
 */
public interface AbstrctIter2 {
	public void getAll2();
	public void getSize2();
	public void getName2();
}

子接口继承上面的接口
package com.wj.Interface;
/**
 * 
 * @author Administrator
 *接口   定义接口 不能使用class 必须使用interface
 *接口可以有多重继承
 */
public interface AbstractInterface extends AbstrctIter1,AbstrctIter2{
	//定义抽象方法,接口中不能有具体方法的实现
	public void play(String str);
	public void play(String str,int age);
}


定义类实现子接口 ,类会实现接口的所有方法
package com.wj.Interface;

/*
 * 实现接口 实现接口的方法
 */
public class AbstractImplement implements AbstractInterface{

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

	@Override
	public void play(String str, int age) {
		// TODO Auto-generated method stub
		
	}

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

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

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

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

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

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

}

 

3,完全解耦

只要有一个方法操作的一个类而非一个接口,那么我们就只能使用这个类及其子类

 

4,接口与工厂

接口可实现多重继承,类不可以是多重继承

 

你可能感兴趣的:(java,抽象类,接口)