java-面向对象三大特性(封装,继承,多态)和抽象
1、封装:
把事物封装到类中。这个类包括该客观事物的属性、行为。
同时也对变量进行保护(在面向过程中,当我们对某个变量进行随意操作,可能会影响到其他程序)。
2、继承:
让某一个类从另一个类中获得部分方法和属性。(子类会拥有父类的public、protected属性和方法)
3、多态:
接口的多种实现方式叫做多态。
通过指向父类变量来调用不同子类中实现方法。
3-0、 协变返回类型
子类中的覆盖方法可以返回父类方法的“返回值类型的子类”。
3-1、向上转型和向下转型
概念:
向上转型:把对某个对象的引用视为其父类型的引用。(安全的)
向下转型:向下转型必须有某种方法来保证向下转型的正确性。
注意:
在java中所有的向下转型都是必须经过检查的,否向下转型错误,会抛出ClassCastException
3-2、 前期绑定(静态绑定)
是指在程序运行前进行绑定,由编译器和连接程序实现。
static 、final、private修饰的方法和变量、构造方法都是前期绑定(private方法就是隐式的final)
3-3、后期绑定(动态绑定)
程序运行时,根据对象的类型进行绑定。
除了前期绑定,其他的都是后期绑定。
3-4、方法的重载
overload
1. 发生在同一类中
2. 方法名相同,参数列表不同。
3. 是多态在同一个类中的体现。
4. 不能通过访问权限、返回类型、抛出的异常进行重载。
5. 异常的类型和数量不影响重载。
6. 返回类型可以不同。(仅仅返回类型不同不构成重载)
7. 可以有不同的访问修饰符,(仅仅访问修饰符不同不构成重载啊)。
3-5、方法的覆盖(重写)
override
1. 发生在父类与子类之间
2. 方法签名完全一致
3. 子类方法可以放大父类方法的访问权限。
4. 父类中的private方法不能被重写。(若子类定义了,也属于新定义的)
5. 子类抛出的异常不能大于父类中的异常。
3-6 super和This
this:指向对象本身的一个指针
super:指向自己父类对象的一个指针
4、抽象 :
将具体事物抽象出我们所需要的属性和方法。
java—面向对象语言
类的定义
class 类名 extends 父类名
java是属于单继承的。所有的java类都是object的子类。
关于访问控制符
.
说明: default同包子类可访问;protected不同包子类也可继承。