Java基础(2)--多态、抽象类、接口的简单介绍

1.多态

一般方法引用的时候如果没有加对象,就代表引用的方法前面含有this,也就是整个大对象;即最小子类的方法;以下例子用来了解什么是多态;

public class HttpServelet {

	public void service() {
		doGet();//相当于this.doGet();
		System.out.println("HttpServelet!");
	}
	
	public void doGet() {
		System.out.println("HttpSeverlet.doGet");
	}
 	
}

public class MySeverlet extends HttpServelet{

	public void doGet() {
		System.out.println("MySeverlet.doGet!");
	}
}

public class Text {
	public static void main(String[] args) {
		HttpServelet s = new MySeverlet();//这就是多态;
		s.service();
	}
	
}

在这段代码中,运行结果是
MySeverlet.doGet!
HttpServelet!

2.抽象类

抽象类就是为所有的子类提供一个通用模板,所有的子类都可以在上面进行扩展。
有抽象方法的类只能定义为抽象类;
抽象方法不能实例,即不能使用new实例化;
抽象类只能继承;
抽象方法必须被子类实现;
抽象类包含属性、方法和构造方法;

public abstract class AbatrctFather {
	public abstract void person();
}

class Child extends AbatrctFather{//The type Child must implement the inherited abstract method AbatrctFather.person(),这是如果没有实现抽象类方法报的错误;
	public void person() {
			System.out.println("说话");
	}
}

首先由于无法实例抽象类,所以只能实例它的继承子类。抽象方法必须实现,否则报错;

3.接口(interface)

在接口中,只有常量和抽象方法(这方法没有abstract修饰,就是普通的方法,只是没有名字);以下是一个简单的接口;

public interface MyInterface {
	String myName = "boss";//在这里面省略了public static final
    public static final int myAge = 120;

	public void test1();// 定义方法,但是不实现;
	public void test2(int a, int b);
}

接口就是 指一些不便的常量和不变的方法声明,其他的实现在另一个地方完成;有一点要注意,接口中定义的常量和方法无论写不写都默认由public static final修饰;接口定义的都是public,方法只能是public或者abstract;

  1. 之所以要使用接口是由于,继承只能单继承,但接口却不止; 一个类可以实现多个接口;
  2. 不能直接实例化接口,因为会报错;只能new实现接口的子类;
  3. 继承接口的抽象类可以不用实现接口中的方法,当然也可以实现,并不强求;

4.回调的实现(callback)

paint()这个函数,就是那种写了就自动运行,不需要将其单独调用;现在先了解这么多,后面全学完之后再继续;
在我的理解看来就是指,某一个过程别人已经定义好了,但是却留下了一下可以调用的方法,某些人就可以通过写这些方法,然后被之前定义的过程进行调用,这样最后就只需要写其中的方法,然后调用最大的那个过程,就可以了;就像下面的程序结构一样;

public class MyCallback {
	public static void person(IMyInter g) {
		System.out.println("第一个");
		System.out.println("第二个");
		g.run();
		System.out.println("1");
	}
	public static void main(String[] args) {
		person(new MyPerson());
	}
}

class MyPerson implements IMyInter{
	public void run() {
		System.out.println("第三个");
	}
}

interface IMyInter{
	void run();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神秘的天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值