您的位置:首页 > 编程语言 > Python开发

python的继承多态

2017-09-22 21:33 337 查看

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

/**

 * Created by seal on 2017/9/19.

 * 继承:并不是单单为了不劳而获,本质是为了多态

 * 实现:更好的多态,解决多继承的尴尬

 * 单继承,确保每个类只用一个父类,好处在对象的实例化过程变得简单

 *    对象的实例化过程:从祖先到自己的每一个构造方法都会执行的过程

 *    多态是也不复杂,父类要被重写的方法只有一个

 *   A

 *   B extend A

 *   C extend B

 *   new C()--Object---A---B---C

 *

 */

public class Jicheng {

    static class Person implements  Comparable<Person>{

        private String name;

        private int age;

        public Person(String name, int age) {

            this.name 

 = name;

            this.age = age;

        }

        public String getName() {

            return name;

        }

        @Override

        public String toString() {

            return String.format("我是%s,今年%d岁",name,age);

        }

        public void setName(String name) {

            this.name 

 = name;

        }

        public int getAge() {

            return age;

        }

        public void setAge(int age) {

            this.age = age;

        }

        @Override

        public int compareTo(Person o) {

            return this.name 

.compareTo(o.name 

)*1000+o.age-this.age;

        }

    }

    public static void main(String[] args) {

        List<Person> ps=new ArrayList<>();

        ps.add(new Person("zhangsan",19));

        ps.add(new Person("lisi",17));

        ps.add(new Person("zhangsan",21));

        ps.add(new Person("wangwu",23));

        System.out.println("没有排序");

        for (Person p :

                ps) {

            System.out.println(p);

        }

        System.out.println("排序后");

        Collections.sort(ps);

        for (Person p :

                ps) {

            System.out.println(p);

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: