专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 四大面向对象的原则

四大面向对象的原则

更新时间:2021-08-25 11:35:03 来源:动力节点 浏览946次

面向对象有4个主要原则。它们是封装、数据抽象、多态和继承。这些也被称为面向对象编程的四大支柱。

封装

封装是通过限制对公共方法的访问来隐藏数据实现的机制。实例变量保持私有,访问器方法公开以实现这一点。

例如,我们在下面的代码片段中隐藏了person 类的name和dob属性。

封装——私有实例变量和公共访问器方法。

抽象

抽象手段 与任何特定实例无关的概念或想法。使用抽象类/接口,我们表达了类的意图而不是实际的实现。在某种程度上,一个类不应该知道另一个类的内部细节才能使用它,只知道接口就足够了。

遗产

继承表示两个对象之间的“is-a”和/或“has-a”关系。使用继承,在派生类中我们可以重用现有超类的代码。在 Java 中,“is-a”的概念基于类继承(使用extends)或接口实现(使用implements)。

例如,从文件中读取的FileInputStream“is-a” InputStream。

多态性

它的意思是一个名字多种形式。它还有两种类型——静态和动态。静态多态通过方法重载实现,动态多态通过方法覆盖实现。它与继承密切相关。我们可以编写一个适用于超类的代码,它也适用于任何子类类型。

例子

Java 集合框架有一个名为 的接口java.util.Collection,ArrayList并且TreeSet是该接口的两种不同实现。ArrayList 维护元素的插入顺序,同时TreeSet通过它们的natural order或comparator(如果提供)对其元素进行排序。现在,如果我们编写一个接受集合并打印其元素的方法,则运行时的实际对象(ArrayList 或 TreeSet)将决定此方法的行为。

多晶印刷法

public  void print( Collection < String > collection) { 
    for ( String s : collection) { 
        System .out.println("s = " + s); 
    } 
}

传递一个 ArrayList

Collection < String > collection1 = new  ArrayList <>(); 
collection1.add("A"); 
collection1.add("D"); 
collection1.add("B"); 
collection1.add("C"); 
打印(集合1);(1)

元素将按照元素插入 arraylist 的顺序打印

程序输出

s = A 
s = D 
s = B 
s = C

传递树集

Collection < String > collection2 = new  TreeSet <>(); 
collection2.add("A"); 
collection2.add("D"); 
collection2.add("B"); 
collection2.add("C"); 
打印(集合2);     (1)

元素将按照自然顺序打印

程序输出

s = A 
s = B 
s = C 
s = D

我们刚刚看到该print()方法的行为由运行时传递给它的实际对象类型决定。这就是多态!

重要事实

除了类型的对象java.lang.Object,所有的 java 对象都是多态的,即它们通过 IS-A 测试对它们自己的类型以及类Object。

引用变量的类型决定了可以在该变量引用的对象上调用的方法。在上面的例子中,print()method 只能调用Collection接口上列出的方法,而不管传递给这个方法的实际对象的类型。

多态方法调用仅适用于实例方法(不适用于静态方法,不适用于变量)。只有重写的实例方法在运行时根据真实对象的类型动态调用。

以上就是动力节点小编介绍的"四大面向对象的原则",希望对大家有帮助,想了解更多可查看Java教程。动力节点在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>