今天碰到一个很有意思的问题,在java中如果子接口中定义了与父接口中已经有的方法会发生什么事情呢?比如: interface IRunnable extends Runnable{ void run(); } 刚开始我还以为这样子的语法应该不能通过编译器,没有想到这样子做编译器并没有做出任何警告. 当然大多数情况下我们都不会这么做,因为这样做似乎没有什么意义.但为了真相,我还是做了个小实现: public class InterfaceDebug{ public static void main…
基本上所有的Java教程都会告诉我们Java接口的方法都是public.abstract类型的,没有方法体的. 但是在JDK8里面,你是可以突破这个界限的哦. 假设我们现在有一个接口:TimeClient,其代码结构如下: import java.time.*; public interface TimeClient { void setTime(int hour, int minute, int second); void setDate(int day, int month, int yea…
一.定义实体类 ,注意需求 是一对多还是多对一.  这里用员工和部门  多对一的关系举例. package com.zs.entity; /* * /* * 多对一? * 多个员工 对应一个部门 一个部门里面有很多信息 * 我们用一个java bean对象来表示 * 如何表示 一个部门 Dept dept; * * */ public class Emp { private int id; private String ename; private String job; private Dep…
接口 (A.java) : package config; public interface A { String PROJECT_ROOT_DIR = System.getProperty("user.dir"); } 类(B.java): (方法1) import config.A; public class B { public static void main(String[] args) { System.out.println(A.PROJECT_ROOT_DIR); }…
在interface里面的变量默认都是public static final 的,原因如下: 1.   接口是一种高度抽象的"模版",,而接口中的属性也就是’模版’的成员,就应当是所有实现"模版"的实现类的共有特性,所以它是public static的 ,是所有实现类共有的. 假如可以是非static的话,因一个类可以继承多个接口,出现重名的变量,如何区分呢? 2.  接口中如果可能定义非final的变量的话,而方法又都是abstract的,这就自相矛盾了, 有可变…
//抽象类中可以定义如下成员变量:public abstract class People { public String name; public int age; public abstract void work(); } 而如下截图中的People接口中,定义成员变量报错: 接口的含义理解:接口可以理解成统一的"协议",而接口中的属性也属于协议中的内容;但是接口的属性都是公共的,静态的,最终的 接口的成员特点: A:成员变量 只能是常量.默认修饰符 public static…
A.Tag B.IterationTag C.BodyTag D.TagSupport 解答:B…
接口方法声明只能是public abstract的,所以不管你在声明的时候加不加abstract,都是可以的.Java 8开始,接口还引入了默认方法,也就是可以给接口的方法提供默认的实现,默认方法应当声明为:public default并实现,public可以省略. 举个例子: public interface Test() { // 以下四种声明方式都是合法的接口方法声明 void test1(); public void test2(); abstract void test3(); pub…
1.PROPAGATION_REQUIRED如果存在一个事务,则支持当前事务,如果没有事务则开启一个新的事务.使用spring声明式事务,spring使用AOP来支持声明式事务,会根据事务属性,自动在方法调用之前决定是否开启一个事务,并在方法执行之后决定事务提交或回滚事务. 对于第一个方法,spring在调用methodA的时候没有事务,因此创建一个新的事务,而methodA中又调用了methodB,而此时已经存在一个事务了,所以methodB会加入到这个事务中:对于第二个方法,由于method…
public delegate void TestDelegate(); // delegate declaration public interface ITestInterface { event TestDelegate TestEvent; void FireAway(); } public class TestClass : ITestInterface { public event TestDelegate TestEvent; public void FireAway() { if…