zoukankan      html  css  js  c++  java
  • 面向对象的特性的应用:多态

    代码如下:

    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();
    }

    }

    }

  • 相关阅读:
    掌上风云
    骗子太多傻子不够用了
    关于WP7的一点想法
    诺基亚的抉择
    Windows Embedded Compact 7 试用笔记(3)
    Windows Embedded Compact 试用笔记(2)——系统定制
    重开博客
    结构体的嵌套问题
    Delphi 2010 新增功能之: IOUtils 单元(1): 初识 TDirectory.GetFiles
    TImage、TPaintBox、TPicture、TBitmap、TCanvas、TGraphic 的关系与区别
  • 原文地址:https://www.cnblogs.com/caocx/p/5749503.html
Copyright © 2011-2022 走看看