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

    }

    }

  • 相关阅读:
    IE 8 兼容性方法总结
    select 文本输入查询
    ES6开发环境准备--babel配置(1)
    HTML5--新增可伸缩矢量图SVG一(9)
    HTML5--新增元素canvas一(8.3)
    HTML5--新增元素canvas一(8.2)
    HTML5--新增元素canvas一(8.1)
    HTML5--新增拖放事件(7)
    HTML5--新增元素音频/视频(6)
    HTML5--Range对象的基本操作(5)
  • 原文地址:https://www.cnblogs.com/caocx/p/5749503.html
Copyright © 2011-2022 走看看