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);
}
}
}
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);
}
}
}
相关文章推荐
- python的继承和多态
- python面向对象--封装,继承,多态
- python学习十(多继承,多态,异常)
- python学习——继承和多态
- Python 学习笔记 - 面向对象(封装,继承和多态)
- python基础教程---更加抽象,类,继承多态封装
- python3全栈开发-面向对象的三大特性(继承,多态,封装)之继承
- Python面向对象编程之继承与多态详解
- python的继承和多态
- Python 继承 多态
- 【Python】初识继承与多态--简明教程
- 用实例解释Python中的继承和多态的概念
- Python 学习笔记 - 面向对象(封装,继承和多态)
- Python 面向对象编程 继承 和多态
- 【Python】[面向对象编程] 访问限制,继承和多态
- python之7-2类的继承与多态
- 6 python 类的初始化,方法,继承以及多态
- Py修行路 python基础 (十六)面向对象编程的 继承 多态与多态性 封装
- python 的继承和多态
- Python面向对象编程之继承与多态详解