本文仅从语法知识点上阐述三者之间的区别,因为该三种语言在现在工作中处理大数据时用的较多,简单记录一下,并逐步丰富与巩固
I. Python
主要是见于Numpy,同时Pandas中的DataFrame一起处理数据
II.Java
III.Scala
I. Python
II.Java
III.Scala
I. Python
II.Java
III.Scala
I. Python
II.Java
III.Scala
I. Python
II.Java
III.Scala
I. Python
使用if/else实现
II.Java
III.Scala
1. 类是抽象的,具有相同属性和方法(行为)的集合
2. 对象是具体的,具有某些属性和方法(行为)的
3. 创建的对象的过程,叫实例化
I. Python
II.Java
III.Scala
主要涉及 public、protect、privite在父类和子类中的访问范围
Public: 所有类都可见;三种语言概念一致
Protect: python与scala当前类及子类都可以访问,java是当前类及子类都可以访问,同时所在的同名的包中的类也可以访问
Privite: 仅限当前类,子类不可访问,且不可以被重写;三种语言概念一致
I. Python
Public:变量不是_、__开头
Protect:_ 单下划线表示, 例如: _instance
Privite:__双下划线表示例如:__instance
II.Java
略
III.Scala
略
I. Python
有静态属性/方法,实例(动态)属性/方法,类属性/方法, 且都可以被重写
II.Java
有静态属性/方法,实例(动态)属性/方法
静态属性/方法不能被直接重写,实例属性/方法需要在构造函数中才能重写
III.Scala
没有静态属性/方法,动态属性/方法的概念
但是有实例属性/方法(相当于实例属性/方法) 和 对象属性/方法(相当于静态属性/方法),且都可以被重写
I. Python
通过定义类实现,方法体可有可无
II.Java
通过interface定义实现,且无方法体,一般仅定义方法,因为接口中定义的属性后不能被重写
III.Scala
通过trait定义实现,方法体可有可无
三者概念基本一致:
1).继承了父类的基本属性和方法
2).可以继续实现自己的属性和方法
3).方法重写:同名函数重写,用另一种实现方案实现父类的方法
I. Python
有单继承、多重继承、多层继承,都是通过class类本身定义
II.Java
有单继承、多层继承,通过class类本身定义
但多重继承是通过继承多个接口即多个interface
III.Scala
同Java概念
重写:子类继承父类后对父类的属性或方法进行重写,
同时基类的私有方法能被子类重写
重载:同一个类中,方法名相同,但是参数不一样(参数类型、数量)
I. Python
仅重写,没有重载
II.Java
静态字段不能被重写,实例方法仅在构造函数中才能被重写
III.Scala
必须使用override修饰
多态:
目的是为了让代码更加,降低耦合
有继承或实现特质(接口)
父类引用指向子类对象或接口指向实现类
方法需要重写
三者概念一致, 略
I. Python
II.Java
III.Scala
原文:https://www.cnblogs.com/satansz/p/13053199.html