1、外部类
public class test{
public static void main(String[] args) {
ILove love=new Love();
love.love(2);
}
}
class Love implements ILove{
public void love(int a){
System.out.println("I love you"+a);
}
}
interface ILove {
void love(int a);
}
2、静态内部类
public class test{
static class Love implements ILove{
public void love(int a){
System.out.println("I love you"+a);
}
}
public static void main(String[] args) {
ILove love=new Love();
love.love(2);
}
}
interface ILove {
void love(int a);
}
3、局部内部类
public class test{
public static void main(String[] args) {
class Love implements ILove{
public void love(int a){
System.out.println("I love you"+a);
}
}
ILove love=new Love();
love.love(2);
}
}
interface ILove {
void love(int a);
}
4、匿名内部类(没有名字,通过接口实现)
public class test{
public static void main(String[] args) {
ILove love=new ILove(){
public void love(int a){
System.out.println("I love you"+a);
}
};
love.love(2);
}
}
interface ILove {
void love(int a);
}
5、lamda表达式简化(只能在函数式接口中使用)
public class test{
public static void main(String[] args) {
ILove love=(int a)->{
System.out.println("I love you"+a);
};
love.love(2);
}
}
interface ILove {
void love(int a);
}
①去掉参数类型(多个参数也能去掉,但是要去掉都去掉)
public class test{
public static void main(String[] args) {
ILove love=(a)->{
System.out.println("I love you"+a);
};
love.love(2);
}
}
interface ILove {
void love(int a);
}
②去掉()(多参数必须加上())
public class test{
public static void main(String[] args) {
ILove love=a->{
System.out.println("I love you"+a);
};
love.love(2);
}
}
interface ILove {
void love(int a);
}
③去掉{}(函数体有多行,则不能去掉)
public class test{
public static void main(String[] args) {
ILove love=a->System.out.println("I love you"+a);
love.love(2);
}
}
interface ILove {
void love(int a);
}





