Java-12.接口

接口:

接口是一种特殊的抽象类
接口中所有方法都是抽象方法
接口使用interface来声明
类只能单继承,接口实现多实现(类只能继承一个类,实现多个接口)
接口同样具有多态性
接口可以把很多不相关的内容进行整合
特点:
1.接口所有的方法都是抽象类,都是公开的
2.接口中所有的变量都是全局静态变量
3.能继承接口的只能是接口,接口和类只能是实现关系
4.实现关系和继承是一样的
5.接口也具有多态性
6.接口中所有变量默认是public static final

区别:

抽象类是用来捕捉子类的通用特性的,而接口则是抽象方法的集合;抽象类不能被实例化,只能被用作子类的超类,是被用来创建继承层级里子类的模板,而接口只是一种形式,接口自身不能做任何事情。
其次,抽象类可以有默认的方法实现,子类使用extends关键字来继承抽象类,如果子类不是抽象类的话,它需要提供抽象类中所有声明方法的实现。而接口完全是抽象的,它根本不存在方法的实现,子类使用关键字implements来实现接口,它需要提供接口中所有声明方法的实现。
抽象类可以有构造器,除了不能实例化抽象类之外,它和普通Java类没有任何区别,抽象方法可以有public、protected和default这 些修饰符。而接口不能有构造器,是完全不同的类型,接口方法默认修饰符是public,不可以使用其它修饰符。

作用:

Java中接口的作用:
1)利于代码的规范
这样做的目的一方面是为了给开发人员一个清晰的指示,告诉他们哪些业务需要实现;同时也能防止由于开发人员随意命名而导致的命名不清晰和代码混乱,影响开发效率。
2)有利于对代码进行维护
可以一开始定义一个接口,把功能菜单放在接口里,然后定义类时实现这个接口,以后要换的话只不过是引用另一个类而已,这样就达到维护、拓展的方便性。

示例:

在这里插入图片描述

public interface valuable {
	void getmoney();		//接口中所有方法都是抽象方法,可以省略abstract且是public
	
}

public interface protectable {
	void cang();
}

public class animal {
	public void eat() {
		System.out.println("动物会吃");
	}
}

public class panda extends animal implements valuable ,protectable{//单继承多实现

	@Override
	public void cang() {
		System.out.println("熊猫藏山里");
	}

	@Override
	public void getmoney() {
		System.out.println("熊猫不可以换钱");
	}	

	@Override
	public void eat() {
		System.out.println("熊猫吃竹子");
		super.eat();
	}
	
}
public class test {
	public static void main(String[] args) {
		panda p=new panda();
		animal a = new panda();	//向上转型
		valuable v = new panda();	
		protectable r =new panda();	
		p.eat();
		p.cang();
		p.getmoney();
		a.eat();
		v.getmoney();
		r.cang();
	}
}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Java中使用sslKey文件调用JSON-RPC 2.0接口,可以按照以下步骤进行操作: 1. 导入必要的库 需要导入以下库: - org.apache.http.client.HttpClient - org.apache.http.client.methods.HttpPost - org.apache.http.entity.StringEntity - org.apache.http.impl.client.HttpClients - org.apache.http.util.EntityUtils - org.json.JSONObject - java.security.KeyStore - javax.net.ssl.SSLContext - javax.net.ssl.TrustManagerFactory - javax.net.ssl.KeyManagerFactory 2. 加载sslKey文件 使用Java的KeyStore类加载sslKey文件,例如: KeyStore keyStore = KeyStore.getInstance("PKCS12"); FileInputStream fis = new FileInputStream("sslKey.p12"); keyStore.load(fis, "password".toCharArray()); 3. 创建SSLContext 使用KeyManagerFactory和TrustManagerFactory创建SSLContext,例如: KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); kmf.init(keyStore, "password".toCharArray()); TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init(keyStore); SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); 4. 创建HttpClient 使用HttpClients.createDefault()创建HttpClient,并使用刚刚创建的SSLContext设置其SSL socket factory,例如: HttpClient httpClient = HttpClients.createDefault(); HttpClient httpClient = HttpClients.custom() .setSSLContext(sslContext) .build(); 5. 发送POST请求 使用HttpPost类创建POST请求,并将请求体设置为JSON-RPC 2.0请求体,例如: HttpPost request = new HttpPost("https://example.com/api"); request.setHeader("Content-type", "application/json"); String json = "{\"jsonrpc\":\"2.0\",\"method\":\"getUser\",\"params\":[\"user123\"],\"id\":1}"; request.setEntity(new StringEntity(json)); 6. 解析响应 执行请求并获取响应,然后解析JSON格式的响应体,例如: HttpResponse response = httpClient.execute(request); String responseString = EntityUtils.toString(response.getEntity(), "UTF-8"); JSONObject jsonResponse = new JSONObject(responseString); if (jsonResponse.has("result")) { JSONObject result = jsonResponse.getJSONObject("result"); // do something with result } else if (jsonResponse.has("error")) { JSONObject error = jsonResponse.getJSONObject("error"); // handle error } 以上就是使用sslKey文件调用JSON-RPC 2.0接口的步骤,需要注意的是,要根据实际情况替换示例中的URL、请求体和响应体解析逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值