【Java】疯狂Java基础(一)——面向对象的特征:继承、封装和多态

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kisscatforever/article/details/79721937

一、前言

      小编记得,刚接触计算机相关的课程的时候,接触的是c++,c++的老师一上来就说c++是面向对象的,c语言是面向过程的。面向对象比面向过程厉害,是从面向过程发展过来的的。

      当时有一个发小学的c语言,我就说,我学的比你的厉害。。O(∩_∩)O哈哈~

      到现在才慢慢的理解了什么是面向对象。这篇博客就针对咱们的这些概念结合生活,再结合代码把面向对象的特征体现出来。

二、面向对象的特征

      很多人都知道,面向对象的特征有封装、继承、多态。

      先来一波理论:来自《疯狂java讲义》

Java是面向对象的程序设计语言,提供了private、protected和public三个访问控制修饰符来实现良好的封装,提供了extends关键字来让子类继承父类,子类继承父类就可以继承到父类的成员变量和方法,如果访问控制允许,子类实例可以直接调用父类里面的方法。

      其实在我们学习的过程中,也慢慢接触了java的面向对象。

三、封装

      一句话说说:

把一类对象,相似的属性汇总到一起,组成一类,这个类把该隐藏的隐藏,该暴露的暴露。

      java提供了三个访问控制符:private、protected和public,分别代表了三个访问控制级别,另外有一个不加任何访问控制符的访问控制级别,由小到大:

这里写图片描述

访问控制符 说明
private 被修饰后,这个成员只能被当前类内部访问
default 包访问权限,被修饰的成员或者外部类可以被相同包下的其他类访问
protected 子类访问权限,被修饰成员可以被同一个包中其他类访问,也可以被不同包中的子类访问
public 公交车,被修饰的成员可以被所有类访问

      代码很常见,简单一个类:

public class A{
    ....
}

四、继承

      一句话说说:

涉及到父子关系,自类可以得到父类的特征,相对是父类的拓展,达到代码重用的效果

      Java中用extends关键字,实现继承类被称为子类,被继承类被称为父类。例如,水果和苹果的关系,苹果继承了水果,苹果是水果的子类,水果是苹果的父类。

五、多态

      一句话说说:

多种形态,多种实现形式

      在代码中就是一个方法名字,多种实现形式。重载(overload)和重写(override)是多态的两种主要形式。

  • 重载(Overload)java代码中,一个类可以有多个方法名相同、参数不同的方法。

  • 重写(override)java代码中,子类继承父类,可以重写父类的方法

      重载demo:

public class A{

    public void test(){
        ....
    }

    public Integer test(){
        .....
    }

    public void test(Integer a){
        .....
    }

}

      这里小编可以说说重载的机制:动态联编。当有方法调用A类的test方法的时候,处理器会根据test方法的参数类型、返回值类型自动判断出要调用那个方法。所以java还是为我们铺垫好了很多呢~!

      重写(override)demo:

public class A{
    public test(){
        ....
    }
}

public class B extends A{
    public test(){
        ******
    }
}

      在上面的代码中,很容易看出使用了继承的关系,在继承中,B类继承了A类,B是A的子类。同时B类可以访问A类的所有非private的方法。B类中也定义了一个和A类一样的方法test,这个就是对A类的方法重写。

六、小结

      可以说面向对象的三大特征都是会被问到的在面试中,我们还是要深刻的理解一下,最好是理论结合代码来解释,空范范的理论会让人感觉有点是刚从学校出来的样子。所以要多结合代码解释。

没有更多推荐了,返回首页