标签:style public 模糊 等于 隐藏 mamicode 返回值 权限控制 同名
在面向过程当中只有存在封装(对功能的封装 例如c语言中的函数),而在面向对象中才存在这三大特性。
继承 -->inheritance
1、子类可以从父类继承属性和方法(除去父类私有化的方法private修饰的)
2、子类可以提供自己单独的属性和方法
封装-->encapsulation
不需要外面访问的我隐藏起来,外界可能用到的我给你提供接口
1、对外隐藏某些属性和方法
2、对外公开某些属性和方法
多态--> polymorphism
1、是程序的最终状态只有 在执行过程中才被决定而非在编译期间就决定了
具体理解在下面再说
引入封装是可以隐藏对象内部的具体实现,具体的功能对外提供接口,避免内部数据被外部干涉等,可以是程序做到“高内聚”,“低耦合”,使系统具有更好的稳定性和扩展性。
如何实现封装:
通过访问修饰权限控制符对对象内部的数据和方法进行实现封装。
1、不同的访问修饰符权限控制
成员(成员变量或成员方法)访问权限共有四种:
1、 public 公共的 • 可以被项目中所有的类访问。(项目可见性)
2、 protected 受保护的 • 可以被这个类本身访问;同一个包中的所有其他的类访问;被它的子类(同一个包以及不同包中的子类)访问
3、default(包可见性) • 被这个类本身访问;被同一个包中的类访问。
4、private 私有的 • 只能被这个类本身访问。(类可见性)
类的访问权限只有两种
1、public 公共的 • 可被同一项目中所有的类访问。 (必须与文件名同名)
2、 default • 可被同一个包中的类访问。
一些默认的封装规则:
1、类属性一般进行私有化封装(private),这些私有化的对外提供get/set方法(在这些方法中对设置的属性进行检查可以提高安全性,并且这些方法要被外界调用所以要为public修饰)。
2、只会在本类中 调用的方法修饰为private(辅助本类中的其他方法完成工作)。
3、外界需要调用的方法,权限修饰符设置为public。
继承是子类对父类进行扩展,继承父类中的属性和方法(非私有化的),但不会去继承父类的构造方法,所有的类在不写extends是默认继承的是Object类。
简单继承例子:
在java中只存在单继承,多继承会引起不必要的混乱,java中的多继承由接口实现。
子类通过继承父类的方法也可以对方法进行重写,形成自身独特的-->方法重写:
方法重写注意点:
1、 “==”:方法名、形参列表相同。
2、“≤≤”:返回值类型和异常类型,子类小于等于父类。
3、“≥”:访问权限,子类大于等于父类
在继承时,子类调用父类的方法属性时使用spuer关键字,自己的则使用this(相当于当前对象)
在继承的基础下,在编译时给一个模糊的类型(类型),在执行是才给真正的类型(实现父类的子类),这样可以提高程序的的灵活性和扩展
性。
要有多态必须要有一下条件:
1、继承(接口也算),这样才不会将类型唯一化。
2、重写
3、上转型对象
多态的形式:使用父类做形参 , 使用父类做方法返回值,方法的重载
标签:style public 模糊 等于 隐藏 mamicode 返回值 权限控制 同名
原文地址:https://www.cnblogs.com/aismvy/p/12187225.html