多态就是同一个接口,因不同的实例,而进行的不同的操作
同一个行为,具有不同的表现形式——————多态
{/tabs-pane}
重写—————子类能够重写父类的方法(final无法被重写,进而无法被继承)。
public class sevenpet { //主测试类
public static void main(String[] args) {
Dog d = new Dog("小狗", "雄", "yellow");//new对象Dog
d.talk();//调用方法
d.eat();
Cat c = new Cat("小喵", "磁", 12);//new对象Cat
c.talk();//调用方法
c.eat();
}
}
abstract class Pet {//声明抽象类
private String name;//封装属性
private String sex;
//get/set
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Pet(String _name, String _sex) {//声明一个带有两个参数的构造函数
name = _name;
sex = _sex;
}
//声明抽象方法 void talk()和 void eat();
public abstract void talk();
public abstract void eat();
}
class Dog extends Pet {//Dog类继承Pet
private String color;//封装color
public Dog(String _name, String _sex, String color) {//声明一个带有三个参数的构造函数
super(_name, _sex);
this.color=color;
}
//重写 talk()和 eat()方法;
public void talk() {
System.out.println(getName() + ":" + getSex() + "性,汪汪汪~~~");
}
public void eat() {
System.out.println(getName() + ":" + color + "色,呼呼呼");
}
}
class Cat extends Pet {//Cat类继承Pet
private double weight;//封装weight
public Cat(String _name, String _sex, double weight) {//声明一个带有三个参数的构造函数
super(_name, _sex);
this.weight=weight;
}
//重写 talk()和 eat()方法;
public void talk() {
System.out.println(getName() + ",一只"+ weight +" 斤重的的"+getSex()+"性小喵,喵喵喵~~~");
}
public void eat() {
System.out.println(getName() + ":cat唔唔唔");
}
}
评论 (0)