美文网首页Java 杂谈
Java学习之三大特性

Java学习之三大特性

作者: 戒律和尚 | 来源:发表于2019-04-23 09:26 被阅读6次

Java的三大特性是Java开发中最基础也是最重要的概念。

封装是 Java 类的编写规范
继承是类与类之间联系的一种形式
而多态为系统组件或模块之间解耦提供了解决方案
一、封装
封装符合面向对象设计原则的第一条:单一性原则,一个类把自己该做的事情封装起来,而不是暴露给其他类去处理,当内部的逻辑发生变化时,外部调用不用因此而修改,他们只调用开放的接口,而不用去关心内部的实现。

封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,只提供符合开发者意愿的公有方法来访问这些数据和逻辑。

示例代码:

public class Dog{
    private String name;//狗狗的名字
    private Sring sex;//狗狗的性别
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Sring getSex() {
        return sex;
    }
    public void setSex(Sring sex) {
        this.sex = sex;
    }
    
}

使用 private 修饰符把成员变量设置为私有,防止外部程序直接随意调用或修改成员变量,然后对外提供 public 的 set 和 get 方法按照开发者的意愿(可以编写一些业务逻辑代码,虽然很少这样做)设置和获取成员变量的值,控制属性访问权限,不是想改就能改

二、继承
为什么需要继承:继承可以代码复用,最重要的还是所谓向上转型,即父类的引用变量可以指向子类对象,这是Java面向对象最重要特性多态的基础。Java 的继承机制是单继承,即一个类只能有一个直接父类。继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能。

在使用继承时的特点:

1、子类拥有父类非private的属性和方法。

2、子类可以拥有自己属性和方法,即子类可以对父类进行扩展。

3、子类可以用自己的方式实现父类的方法。

public class Dog{
    public void cry(){
        System.out.println("狗狗在叫");
    }
}

public class JinmaoDog extends Dog{
    public void cry(){
        System.out.println("金毛狗狗在叫");
    }
    public static void main(String[] args) {
        Dog dog = new JinmaoDog();
        dog.cry();
    }
}

PS:子类中重写父类的方法后可以使用super.方法名调用执行父类的方法,比如在JinmaoDao类的cry方法中可以使用 super.cry();

注意:如果父类的方法为final的,则不能重写该方法。

三、多态
多态指允许不同类的对象对同一“消息”做出响应。即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。

一个方法可以由修饰符、返回值、方法名、参数等几部分构成,其中只有方法名和参数是唯一性标识,也就是说只要方法名和参数相同那就是相同的方法,所谓参数相同,是指参数的个数,类型,顺序一致,其中任何一项不同都是不同的方法。

代码示例:

public class Dog{
    public void cry(){
        System.out.println("狗狗开始叫");
    }
    public void cry(int i){
        System.out.println("狗狗叫了" + i + "个小时");
    }
}

一个类中方法名相同,方法参数的个数和类型不同,通过个数和类型的不同来区分不同的函数叫做方法重载。

方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。

三大特性总结:

1、封装实现了专业的分工,隐藏信息,实现细节。通过控制访问权限可以将信息隐藏起来。

2、继承提高代码复用率,避免重复代码的出现,当父类提供的方法无法满足子类的需求时,子类可以重写父类的方法,实现自己的需求。

3、多态消除类型之间的耦合关系,相同的事物,调用相同的方法使用相同的参数,但是表现的行为不同。

如果你觉得好不妨转发分享出去
你也可以关注我
文章都会同步到公众号

1555779568162.jpg

相关文章

  • Java学习之三大特性

    Java的三大特性是Java开发中最基础也是最重要的概念。 封装是 Java 类的编写规范继承是类与类之间联系的一...

  • Java基础之三大特性

    封装,继承和多态是Java的三大特性。 封装:将属性私有化,使用private关键字修饰,提供公共的方法访问属性....

  • java基础概念

    java_basic 介绍 java基础 三大特性之—封装 三大特性之—继承 三大特性之—多态 抽象 接口 深拷贝...

  • Apache和Spring提供的StopWatch执行时间监视器

    相关阅读 【小家java】java5新特性(简述十大新特性) 重要一跃【小家java】java6新特性(简述十大新...

  • 类似——外观模式

    学习Java,有三大特性:封装、多态、继承。 上次说到:学习设计模式,是了解多态这个特性,非常好的一个途径。 另外...

  • 面向对象三大特性(一):封装

    面向对象有三大特性:封装、继承和多态。注意,是面向对象的三大特性而不是Java的三大特性,Java只是面向对象语言...

  • Kotlin随笔,这次坚持不太监

    Kotlin中的类与继承 Java三大特性继承、多态、封装Java学习中首先学习的是类的构建,那么必然要学习构造方...

  • 知识

    Java Java三大特性详解 String,StringBuffer,StringBuilder的区别 Java...

  • 导航

    JAVA JAVA基础-三大特性 Android Google Doc: https://developer.a...

  • Android 开发者进阶的“丝绸之路”,万人踩坑晋升总结

    一、Java基础 1 . 面向对象的三大特性:Java 作为面向对象编程语言,你得知道OOP的的三大特性封装、继承...

网友评论

    本文标题:Java学习之三大特性

    本文链接:https://www.haomeiwen.com/subject/lwjmgqtx.html