Java基础之多态

前言

Java是一种面向对象编程语言,抽象、继承、封装、多态,是面向对象语言的四个基本特征,

抽象、继承和封装是多态的基础,同时多态是抽象、继承、封装的表现形式,

简单的讲,多态就是一个消息的多种表现形式。

 

多态的必要条件

1.必须要有继承,

2.必须要有子类重写父类的方法,

3.父类的引用变量指向子类的对象,

 

第2点中重写父类的方法的条件有三种情况是不能实现多态

1.父类的方法是静态方法,静态方法是属于类本身而不是对象,静态方法是在class文件加载到java虚拟机时跟着类信息一起存在,

2.父类的方法被final关键字修饰,不能够被子类重写,

3.父类的方法是被private修饰的私有方法,不能够被子孙类重写;父类的方法是被 protected关键字修饰的受保护方法,他虽然能够被子孙类重写,但是不能够被外部方法调用;

因此也是不能够体现多态的特性,

 

多态的分类

1.方法的重载,多个方法的方法名相同,参数列表,参数类型,参数顺序的不同构成一组重载方法,在编译时期体现,

2.方法的重写,子类在继承父类时,重写父类的方法,并且在程序运行时期调用父类引用指向的对象的方法,

 

重载指的是在一个具体的类中,参数列表不同,参数类型不同,参数顺序不同,且方法名相同的的一直方法,与返回值的类型和和修饰符无关

 

Java语言的作用域有四类:public、protected、default、private

1.public:public修饰的成员属性或方法对所有用户公开,

2.protected:protected修饰的成员属性或者方法只对当前类、子孙类、同一个包下的类公开,

3.default:default修饰的成员属性或者方法只对当前类、同一包下的类公开,

4.private:private修饰的成员属性或者方法只能给当前类调用

 

很多开发多年的Java程序员不太懂Java多态或者是以为多态很简单,然而开发却总写不出任何有质量的代码,我只想说,这不简单,这是很多复杂设计模式的基础,

当然,楼主我也没有专研的很深。依旧在努力,在路上,希望以后写出更精致的文章。

 

posted @ 2018-05-12 20:11  冰糖小城  阅读(411)  评论(1编辑  收藏  举报