抽象类的匿名子类
在B站学习java写的代码
代码如下
PersonTest类
package com.day0130_2; /* * 抽象类的匿名子类 * */ public class PersonTest { public static void main(String[] args) { method(new Student());//匿名对象 Worker worker =new Worker(); method1(worker);//非匿名的类 非匿名的对象 method1(new Worker());//非匿名的类 匿名的对象 System.out.println("*****************"); //创建了一匿名子类的对象:p Person p=new Person() /*多态*/{ @Override public void eat() { System.out.println("吃东西"); } @Override public void breath() { System.out.println("好好呼吸"); } }; method1(p); /* 吃东西 好好呼吸 */ System.out.println("*****************"); //创建匿名子类的匿名对象 method1(new Person () { @Override public void eat() { System.out.println("吃好吃的东西"); } @Override public void breath() { System.out.println("好好呼吸新鲜空气"); } }); } public static void method1(Person p) {//多态 p.eat(); p.breath(); } public static void method(Student s) { } } abstract class Creature{ public abstract void breath(); } abstract class Person extends Creature{ String name; int age; public Person() { } public Person(String name,int age) { this.name=name; this.age=age; } //抽象方法 public abstract void eat(); public void walk() { System.out.println("人走路"); } } class Worker extends Person{ @Override public void eat() { } @Override public void breath() { } }