接口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,接口与工厂
接口可实现多重继承,类不可以是多重继承