【Java-13】抽象类、接口、回调

抽象类、接口目的是设计与实现分离,是继承与重写的应用,父类只作为一个模板,然后生成每一个子类,每一个子类中要对父类中所有方法都重写。抽象类、接口是多态的深化,都是为了统一处理子类!

回调其实就是多态、抽象类、接口的应用,所谓回调是指一段程序中有一个未定执行语句,这个语句可以是任意一个子类中任意函数、属性,通常这一段程序是封装到一个函数里的,所以这个函数参数我们可以定义为父类类型,同多态一样执行

interface A {
	public static final int i = 10;		//接口只能定义全局常量需要加public static final如果不加系统默认给出,推荐加。
                                                
	public abstract void eat();
}
 
interface B extends A { 		// 接口可以继承接口
	public abstract void sleep();
}
 
interface C {
	public abstract void look();
}
 
abstract class D {        //定义一个抽象类
	public void run() {
		System.out.println("跑起来");
	}
 
	public abstract void learn();
}
 
public class Text extends D implements B, C {		//一个子类可以继承一个抽象类同时实现多个接口
	//子类如果不是抽象类就必须实现所有的抽象方法
	
	public void eat() {		//实现接口A中的抽象方法
		System.out.println("吃东西");
	}
 
	public void look() {		//实现接口C中的抽象方法
		System.out.println("看风景");
	}
 
	public void sleep() {		//实现接口B中的抽象方法
		System.out.println("睡懒觉");
	}
 
	@Override
	public void learn() {	//重写抽象类D中的抽象方法
		System.out.println("学Java");
	}
 
	public static void main(String[] args) {
		B b=new Text();		//多态,接口的引用指向子类的对象
		b.eat();
		b.sleep();
		System.out.println(B.i);    //静态常量通过接口名去访问,不推荐用对象去调用
                C c=new Text();
		c.look();
		D d=new Text();	
		d.learn();
		
	}
}
/**
 * 输出为:
吃东西
睡懒觉
10
看风景
学Java
 */

猜你喜欢

转载自blog.csdn.net/weixin_42034217/article/details/85841162