匿名内部类使用形式

new 类或者接口(参数值...){
类体(一般是方法重写)
}
比如:
new Animal(){
@Override
public void cry(){
}
}
特点:本质是一个子类,并且会创造出一个子类对象。
3.基本作用:可以更方便的创造出一个子类对象。
没有匿名内部类以前:
package Demon03;

public class Test2 {
public static void main(String[] args) {
//需求:学生和老师都要参加游泳比赛
Swim s1=new Student();
start(s1);
}
public static void start(Swim s){
System.out.println("开始.............");
s.Swimming();
System.out.println("结束.............");
}
}
class Teacher implements Swim {
@Override
public void Swimming() {
System.out.println("老师在狗刨式游泳");
}
}
class Student implements Swim{

@Override
public void Swimming() {
    System.out.println("学生在蛙泳");
}

}
interface Swim{
void Swimming();
}
运行结果:
开始.............
学生在蛙泳
结束.............
System.out.println("00000000000000000000000000000000000000000000000000000000000000000000000000000000")
用了匿名内部类之后:
不需要再定义实现类,也就是Student和Teacher//implements接口那里。
package Demon03;

public class Test2 {
public static void main(String[] args) {
//需求:学生和老师都要参加游泳比赛
Swim s1=new Swim(){
/*对象回调,把匿名内部类对象送给你,为了你回来调我的方法
这个对象就代表了学生对象,一个匿名内部类对象,由s1送给下面的s,
也就是public static void start(Swim s)中的s,s往下走到s.Swimming();
肯定会去找s指向的匿名内部类那里的Swim方法,然后再走结束输出
*/
@Override
public void Swimming() {
System.out.println("学生游泳贼快");
}
};
start(s1);
System.out.println("1111111111111111111111111111111111111111111111");
Swim s2=new Swim(){
@Override
public void Swimming() {
System.out.println("老师游泳贼溜");
}
};
start(s2);
}
public static void start(Swim s){
System.out.println("开始.............");
s.Swimming();
System.out.println("结束.............");
}
}
class Teacher implements Swim {
@Override
public void Swimming() {
System.out.println("老师在狗刨式游泳");
}
}
class Student implements Swim{

@Override
public void Swimming() {
    System.out.println("学生在蛙泳");
}

}
interface Swim{
void Swimming();
}
System.out.println("0000000000000000000000000000000000000000000000000000000000000000000000000000000");
运行结果:
开始.............
学生游泳贼快
结束.............
111111111111111111111111111111111111111111111111
开始.............
老师游泳贼溜
结束.............

posted @ 2025-04-28 00:14  骆驼刺破仙人掌007  阅读(11)  评论(0)    收藏  举报