Java笔记:抽象类的匿名子类

abstract class Person extends Creature{
    
    
	String name;
	int age;
	
	public Person() {
    
    
		
	}
	public Person(String name,int age	) {
    
    
		this.name = name;
		this.age = age;
	}
	
//	public void eat() {
    
    
//		System.out.println("人吃饭");
//	}
	
	//抽象方法
	public abstract void eat();
	
	public void walk() {
    
    
		System.out.println("人走路");
	}
}

class Student extends Person{
    
    
	
	public Student() {
    
    
		
	}
	
	public Student(String name,int age) {
    
    
		super(name,age);
	}
	
	public void eat() {
    
    
		System.out.println("学生多吃有营养的事物");
	}

	@Override
	public void breath() {
    
    
		System.out.println("学生应该呼吸新鲜的空气");
		
	}
	
}
/*
 * 抽象类的匿名子类
 * 意义:省事,只用一次
 */

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() {
    
    
				// TODO Auto-generated method stub
				System.out.println("吃东西");
			}

			@Override
			public void breath() {
    
    
				// TODO Auto-generated method stub
				System.out.println("呼吸");
			}
			
		};
		
		method1(p);
		
		System.out.println("******************************");
		
		//创建匿名子类的匿名对象
		method1(new Person() {
    
    

			@Override
			public void eat() {
    
    
				// TODO Auto-generated method stub
				System.out.println("卧槽");
			}

			@Override
			public void breath() {
    
    
				// TODO Auto-generated method stub
				System.out.println("我擦");
			}
			
		});
	}
	
	public static void method(Student s) {
    
    
		
	}
	
	public static void method1(Person p) {
    
    
		p.eat();
		p.breath();
	}
}

class Worker extends Person{
    
    

	@Override
	public void eat() {
    
    
		// TODO Auto-generated method stub
		
	}

	@Override
	public void breath() {
    
    
		// TODO Auto-generated method stub
		
	}
	
}

Guess you like

Origin blog.csdn.net/weixin_44201223/article/details/118442705