如果要修该一个类中的某个方法一共有三种方法:继承,写一个装饰类,动态代理
这里我主要介绍装饰类:
1.写一个interface Animal
package com.itheima.pool;
public interface Animal {
public void eat();
public void bite();
}
2.写一个Dog类继承Animal接口:
package com.itheima.pool;
public class Dog implements Animal{
public void eat(){
System.out.println("dog is eatting...");
}
public void bite(){
System.out.println("dog is bitting...");
}
}
3.写一个装饰类DecorateDog类同时也继承和Dog同样的接口:
在这个类中提供了一个构造方法,有一个Animal的接口参数,为了是在new DecorateDog的时候传入Dog对象....相当于多态
package com.itheima.pool;
public class DecorateDog implements Animal{
private Animal ani=null;
public DecorateDog(Animal ani){
this.ani=ani;
}
@Override
public void eat() {
ani.eat();
}
@Override
public void bite() {
System.out.println("dog is mie mie....");
}
}
4.写一个测试类DogTest
package com.itheima.pool;
public class DogTest {
public static void main(String[] args) {
Dog dog= new Dog();
Animal ani=new DecorateDog(dog);
ani.bite();
}
}
5.运营结果:
结果运行的是mie mie...这是因为调用了装饰类中被修改的方法。
版权声明:本文为博主原创文章,未经博主允许不得转载。