面向对象的特性的应用:多态

代码如下:

package four.day8.com;

public class Person {
private String name;;
private int age;
public Person() {
super();
}
public Person(String name,int age){
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void walk(){
System.out.println("人要好好的走路的!!!!!!!");
}
public void eat(){
System.out.println("人吃饭");
}
}

package four.day8.com;

public class Women extends Person {
private boolean isbeauty;

public boolean isIsbeauty() {
return isbeauty;
}

public void setIsbeauty(boolean isbeauty) {
this.isbeauty = isbeauty;
}

public Women() {
super();
}

public Women(boolean isbeauty) {
super();
this.isbeauty = isbeauty;
}
public void walk(){
System.out.println("女人:窈窕淑女,君子好逑!!!!!!");
}
public void eat(){
System.out.println("女人:要少吃点,减肥!!!!!");
}
public void shopping(){
System.out.println("女人:爱购物");
}


}

package four.day8.com;

public class Man extends Person{
private boolean smoking;
//构造器不带参数
public Man() {
super();
}

//构造器带参数
public Man(boolean smoking) {
super();
this.smoking = smoking;
}


public boolean isSmoking() {
return smoking;
}

public void setSmoking(boolean smoking) {
this.smoking = smoking;
}
public void walk(){
System.out.println("男人:人要很坚忍的走路!!!");
}
public void eat(){
System.out.println("男人:要大口大口吃肉!!!!");
}
public void enterTramint(){
System.out.println("男人好客之道:请客");
}

}

package four.day8.com;


/**
* 面向对象的特征性:多态性
* 1,多态性指的是什么?多态性,可以理解为一个事物的动作表现形态
* 1)方法的重载与重写 2)子类的多态性
* **/
public class TestPerson {

public static void main(String[] args) {
Person pp = new Person();
pp.eat();
pp.walk();
Man man = new Man();
man.walk();
man.eat();

Women wm = new Women();
wm.eat();
wm.walk();
//子类对象的多态性:父类的引用指向子类对象
Person p1 = new Man();//向下转型
//虚拟方法调用:通过父类的引用指向子类的实体,当调用方法时,实现执行的是子类重写父类的方法
p1.eat();
p1.walk();
//p1.enterTramint();
Person p2 = new Women();
p2.eat();
p2.walk();
Women ww = (Women)p2;//向下转型
ww.shopping();

if(p1 instanceof Women){
Women www = new Women();
www.shopping();
}
if(p1 instanceof Man){
Man mm = new Man();
mm.enterTramint();
}

}

}

原文地址:https://www.cnblogs.com/caocx/p/5749503.html