1基于抽象类的匿名内部类
package com.homework;
abstract class Dog {
public abstract void eat();
public void paly () {
System.out.println("玩皮球");
}
}
public class Demo4 {
public static void main(String[] args) {
//第一种方法
// new Dog(){
// //需要重写其中的抽象方法
// @Override
// public void eat() {
// System.out.println("吃大肉!!!");
// }
// //非抽象类
//
// //调用
// }.eat();
// new Dog(){
// @Override
// public void eat() {
//
// }
// @Override
// public void paly() {
// System.out.println("玩泥巴!!!");
// }
//
// }.paly();
//第二种方法
Dog dog = new Dog() {
@Override
public void eat() {
System.out.println("吃骨头!!!!!");
}
//
@Override
public void paly() {
System.out.println("玩pipi!!!");
}
};
dog.eat();
dog.paly();
}
}
2基于接口的匿名内部类
package com.homework;
interface Cat {
void drink();
}
public class Demo5 {
public static void main(String[] args) {
//第一种方法
// new Cat(){
// @Override
// public void drink() {
// System.out.println("喝牛奶");
// }
// //调用
// }
//第二种方法
Cat cat = new Cat() {
@Override
public void drink() {
System.out.println("喝汽水!!!!");
}
};
cat.drink();
}
}