多态
- 多态的优点:消除类型之间的耦合关系、可替换性、可扩充性、接口性、灵活性、简化性
- 多态存在的三个必要条件:继承、重写、父类引用指向子类(置换)
Employee e; //父类引用
e = new Employee();
e = new Manager(); //置换为子类对象
- 多态的实现方式:重写、接口、抽象类与抽象方法
package Test;
public class Test {
public static void main(String[] args){
}
}
abstract class Animal{
protected int legs;
protected Animal(int legs){
this.legs = legs;
}
public abstract void eat();
public void walk(){
System.out.println(this.legs);
}
}
class Spider extends Animal{
public Spider(){
super(8);
}
public void eat(){
System.out.println("土司");
}
}
interface Pet{
String getName();
void setName(String name);
void play();
}
class Cat extends Animal implements Pet{
private String name;
public Cat(String name){
super(4);
this.name = name;
}
public Cat(){
this("");
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void eat(){
System.out.println("鱼");
}
public void play(){
System.out.println("毛线球");
}
}
class Fish extends Animal implements Pet{
private String name;
@Override
public void walk() {
System.out.println("不会");
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void play(){
System.out.println("玩水");
}
public Fish(){
super(0);
}
public void eat(){
System.out.println("水");
}
}