目录
Scala面向对象基础
1.面向对象的基本概念
对象:表示具体的事物。对象实现了数据与操作的结合,使数据和操作封装在对象中。对象具有状态,用数据值描述;对象具有操作,用于改变对象的状态,对象及其操作就是对象的行为。
类:具有相同属性和行为的对象的抽象就是类,类具有属性,它是对象的状态的抽象;类具有方法,它是对象的行为的抽象。
2.面向对象的特征
1.对象唯一性:每个对象都是唯一的,在其生命周期内,对象的标识不变,不同的对象标识也不同
2.抽象性:将具有相同属性和行为的对象的抽象成类
3.封装性:把类(对象)的属性和行为封装起来,并尽可能的隐藏对象的属性和实现细节。保护数据成员,不让类以外的程序直接访问或修改,只能通过提供的公共接口访问,从而实现数据封装。方法的细节对用户隐藏,只提供外部接口,而内容的修改不会影响到外部调用,从而实现方法封装。类成员的访问修饰符如下
4.继承性:子类共享父类的属性和方法,在Java和Scala中都只能实现单继承,就是子类只有一个父类。子类在继承了父类的属性和方法的同时,也是可以加入自己的内容,或者重写父类的方法的。通过类的继承,使公共的特性可以共享,提高了重用性。
5.多态性:“一个接口,多个方法”,同一个操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。多态需要有三个条件:继承(继承是多态的基础)、子类重写父类方法(多态下调用子类重写的方法)、父类引用变量指向子类对象(如Animal a =new cat(),cat继承自它的父类Animal,Animal类型的引用就可以指向cat类型的对象,这就是向上转型)。那么父类引用变量指向子类对象有什么意义呢,就是既可以使用子类的方法,又可以抽取父类的共性,对于子类中定义而父类中没有的方法,父类引用是无法调用的。
3.如何定义一个类
在这个例子里&