java对外查询接口注意的地方_Java接口注意点

1、接口可以多实现:一个实现类可以同时实现多个接口

2cf63e9de1b74dcf4b3b11e26581fbd6.png

package com.qf.demo02_interface;

//定义一种规则:

interface A{

public void testA();//

public void fun();

}

//定义另一种规则

interface B{

public void testB();

public void fun();

}

//实现类,实现接口A。满足接口的规则:其实就是要实现接口中所有的抽象方法。

class DemoA implements A,B{

@Override

public void testA() {

System.out.println("DemoA类,满足接口A的规则。。。");

}

@Override

public void testB() {

System.out.println("DemoA类,也满足接口B的规则。。。");

}

@Override

public void fun() {

System.out.println("DemoA类,实现类fun方法。。。");

}

}

public class Test1Interface {

public static void main(String[] args) {

A a = new DemoA();

a.testA();

a.fun();

B b = new DemoA();

b.testB();

b.fun();

DemoA demoA = new DemoA();

demoA.testA();

demoA.testB();

}

}

2、接口可以多继承

类中的方法:有声明有实现的方法。

接口中方法:有声明,没有实现。将功能的描述,和功能的实现,分离开。

ed988a9c33cce97f6db382b397c93044.png

package com.qf.demo03_interface;

//一种规则

interface C{

public void testC();

}

//另一种规则

interface D{

public void testD();

}

//接口可以继承多个父接口

interface E extends C,D{

public void testE();

}

//实现类,实现接口E

class DemoB implements E{

@Override

public void testC() {

System.out.println("C协议。。");

}

@Override

public void testD() {

System.out.println("D协议。。");

}

@Override

public void testE() {

System.out.println("E协议。。。");

}

}

public class Test3Interface {

public static void main(String[] args) {

C c = new DemoB();

c.testC();

D d = new DemoB();

d.testD();

E e = new DemoB();

e.testC();

e.testD();

e.testE();

}

}

3、一个类如果实现接口了,还能继承其他的父类吗?可以的

意味着,一个类继承了一个父类:那么就可以直接使用父类的非私有化的属性和方法。

同时,还实现接口某个接口规则。

这个类即作为一个父类的子类,又作为了一个接口的实现类。

dd1ebd4c1998cbc0585f71a2a972c0ac.png

package com.qf.demo04_interface;

//表示一种协议,一种规则

interface H{

public void testH();

public void fun();

}

//继承?is - a,子类是一个特殊的父类

class M{

public void testM(){

System.out.println("我是M类的方法。。");

}

public void fun(){

System.out.println("M类中的fun方法。。。");

}

}

//定义一个类:N

//继承了父类M:意味着N这个类可以直接使用父类的非私有化的属性和方法。

//同时实现接口H:意味着满足接口H中的所有规则:抽象方法。。

class N extends M implements H{

@Override

public void testH() {

System.out.println("满足了接口H的协议规则。。");

}

//父类的fun方法,一旦存在继承关系,相当于子类也有一份。

//public void fun(){

//System.out.println("M类中的fun方法。。。");

//}

}

public class Test4 {

public static void main(String[] args) {

//课间思考题:一个类可以继承父类的同时,再实现接口吗?

M m = new N();//父类引用,指向子类的对象:一种对象的多态

m.testM();

m.fun();

System.out.println("-----------------");

H h = new N();//接口引用,指向实现类对象:一种接口的多态

h.testH();

h.fun();

}

}

4、如果一个类没有实现接口中的所有的方法,那么它是抽象的

一个实现类可以实现接口,但是如果没有实现全部的方法, 那么该类是抽象的。等待子类继承,并且实现抽象方法。

package com.qf.demo05_interface;

interface K{

public void test1();

public void test2();

}

abstract class KImpl implements K{

@Override

public void test1() {

}

}

class L extends KImpl{

@Override

public void test2() {

}

}

public class Test5 {

public static void main(String[] args) {

}

}

5、接口中的两个特殊的方法

1、静态方法:

2、默认的方法:jdk1.8版本出现的新特性。

目的:不强制一定要实现某个功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring目录结构和基础JAR包介绍

目前 Spring 框架的最新版本是 5.1.8,本教程是基于 Spring 的稳定版本 3.2.13 进行讲解的。读者可以通过网址 http://repo.spring.io/simple/libs-release-local/org/springframework/spring/ 下载名称为 springframework-3.2.13.RELEASE-dist.zip 的压缩包。单击此…

自定义依赖注解无效_SpringValidation用注解代替代码参数校验解析

Spring Validation概念在原先的编码中,我们如果要验证前端传递的参数,一般是在接受到传递过来的参数后,手动在代码中做 if-else 判断,这种编码方式会带来大量冗余代码,十分的不优雅。因此,推出了用注解的方…

mysql开源许可_为什么开源数据库改变许可证?

CockroachDB 是一个开源的分布式数据库,最近改变了代码授权,放弃了 Apache 许可证。一、CockroachDB 的许可证变更CockroachDB 以前的许可证是 Apache,代码托管在 GitHub,任何人都可以访问。现在的许可证改成了"商业源码许可…

Spring 依赖注入的实现

依赖注入(Dependency Injection,DI)和控制反转含义相同,它们是从两个角度描述的同一个概念。 当某个 Java 实例需要另一个 Java 实例时,传统的方法是由调用者创建被调用者的实例(例如,使用 new…

java 静态对象语法_04.Java 语法

计算机基础知识表达式(expression):Java中最基本的一个运算。比如一个加法运算表达式。12是一个表达式,ab也是。计算机内存的最小存储单元是字节(byte),一个字节就是一个8位二进制数,即8个bit。它的二进制表示范围从00000000~1111…

Spring实例化Bean

在面向对象的程序中,要想调用某个类的成员方法,就需要先实例化该类的对象。在 Spring 中,实例化 Bean 有三种方式,分别是构造器实例化、静态工厂方式实例化和实例工厂方式实例化。 构造器实例化 构造器实例化是指 Spring 容器通…

Spring基于XML装配Bean

Bean 的装配可以理解为依赖关系注入,Bean 的装配方式也就是 Bean 的依赖注入方式。Spring 容器支持多种形式的 Bean 的装配方式,如基于 XML 的 Bean 装配、基于 Annotation 的 Bean 装配和自动装配等。 Spring 基于 XML 的装配通常采用两种实现方式&…

苹果php环境,苹果电脑安装PHP环境步骤-PHP问题

苹果电脑装置PHP环境步骤:一、起首咱们需求装置Homebrew二、终端输出饬令// 创立目次,假如你不创立过该目次sudo mkdir /usr/local/varsudo chmod 777 /usr/local/var//修正成你本人的用户名以及组,假如你不创立过该目次sudo mkdir /usr/local/sbin/sudo chown -R :…

Spring基于Annotation装配Bean

在 Spring 中,尽管使用 XML 配置文件可以实现 Bean 的装配工作,但如果应用中 Bean 的数量较多,会导致 XML 配置文件过于臃肿,从而给维护和升级带来一定的困难。 Java 从 JDK 5.0 以后,提供了 Annotation(注…

swiper鼠标hover停止自动轮播_swiper滑块组件

相信大家在平常购物的时候都会看到轮播图,轮播图里面播放的是热门商品的信息。在小程序里面我们可以通过swiper滑动视图容器组件来实现,让我们一起来看下swiper组件都有哪些属性:我们看到可以通过一些属性给视图容器增加一些指示点&#xff0…

Spring自动装配Bean

除了使用 XML 和 Annotation 的方式装配 Bean 以外,还有一种常用的装配方式——自动装配。自动装配就是指 Spring 容器可以自动装配(autowire)相互协作的 Bean 之间的关联关系,将一个 Bean 注入其他 Bean 的 Property 中。 要使用…

java鬼剑士觉醒,DNF新觉醒装扮,男鬼剑士帅气无比!

在DNF这个游戏中,时装作为游戏的一大氪点,相信这几天的奇迹缝纫机活动也让大家了解到了时装到底多么的烧钱!而也因为这次的活动,时装可以说达到了饱和状态了,估计短时间之内魔盒里不会再出现追忆时装了!虽然…

Spring JDK动态代理

JDK 动态代理是通过 JDK 中的 java.lang.reflect.Proxy 类实现的。下面通过具体的案例演示 JDK 动态代理的使用。 1. 创建项目 在 MyEclipse 中创建一个名称为 spring 的 Web 项目,将 Spring 支持和依赖的 JAR 包复制到 Web 项目的 WEB-INF/lib 目录中,…

澄海哪里学机器人编程_少年学机器人编程

​当今社会,唯有能者居之,说的是有技能在手的人可以立足于职场,格物斯坦表示:现代化的教育方式有很多,其中有一种机器人编程教育模式,青少年们学好了,以后中考、高考核就业比同龄人更有优势了。…

Spring CGLlB动态代理

JDK 动态代理使用起来非常简单,但是有一定的局限性,这是因为 JDK 动态代理必须要实现一个或多个接口,如果不希望实现接口,则可以使用 CGLIB 代理。 CGLIB(Code Generation Library)是一个高性能开源的代码…

更新fielddata为true_在pytorch中停止梯度流的若干办法,避免不必要模块的参数更新...

在pytorch中停止梯度流的若干办法,避免不必要模块的参数更新2020/4/11 FesianXu前言在现在的深度模型软件框架中,如TensorFlow和PyTorch等等,都是实现了自动求导机制的。在深度学习中,有时候我们需要对某些模块的梯度流进行精确地…

php 自动切图,前端工程师技能之photoshop巧用系列扩展篇自动切图

目录[1]初始设置 [2]自动切图前面的话随着photoshop版本的不断升级,软件本身增加了很多新的功能,也为切图工作增加了很多的便利。photoshop最新的版本新增了自动切图功能,本文将详细介绍photoshop的这个新功能初始设置当然首先还是要进行一些…

Spring通知类型及使用ProxyFactoryBean创建AOP代理

Spring 通知类型 通知(Advice)其实就是对目标切入点进行增强的内容,Spring AOP 为通知(Advice)提供了 org.aopalliance.aop.Advice 接口。 Spring 通知按照在目标类方法的连接点位置,可以分为以下五种类型…

matlab二维谐振子,基于有限差分法求解的二维谐振子的MATLAB程序如下。哪位大神能帮我做个注明啊,完全看不懂啊,,急...

基于有限差分法求解的二维谐振子的MATLAB程序如下。哪位大神能帮我做个注明啊,完全看不懂啊,,急0____丿呆呆丶2017.04.15浏览20次分享举报tic clc clear L20; W20; N20; M20; hxL/(2*N); hyW/(2*M); Szeros((2*M-1)*(2*N-1)); for m1:2*M-1 D…

typescript get方法_.NET手撸绘制TypeScript类图——上篇

.NET手撸绘制TypeScript类图——上篇近年来随着交互界面的精细化,TypeScript越来越流行,前端的设计也越来复杂,而类图正是用简单的箭头和方块,反映对象与对象之间关系/依赖的好方式。许多工具都能生成C#类图,有些工具也…