JAVA 面试的那些事儿 - 2

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

欢迎访问:https://www.ltysyn.cn/?p=170

什么是面向对象编程?你是如何理解的

  • 面向对象时站在对象角度思考问题的一种方式
  • 类是面向对象中的一个很重要的概念,因为类是很多个具有相同属性和行为特征的对象所抽象出来的,对象是类的一个实例

封装

  • 封装就是把一些属性和方法封装起来,形成一个类
  • 类的属性一般私有;类的方法:该公开的公开,该私有的私有
  • 将属性都私有,并且提供 set/get 方法,做成了通用的组件,叫 JavaBean

继承

继承是一种构建新类的方式,他是基于已有的类的定义为基础,构建新的类,已有的类称为父类,新构建的类称为子类,子类能调用父类的非private修饰的成员,同时还可以自己添加一些新的成员,扩充父类,甚至重写( @Override )父类已有的方法,使其表现符合子类的特征。

多态

从一定角度来看,封装和继承几乎都是为多态而准备的。多态是同一个行为具有多个不同表现形式或形态的能力。多态性是对象多种表现形式的体现。类中多个方法的重载( Overload )叫多态,父子类中方法的覆盖( @Override )也叫多态。因此多态有两种体现:一个是方法的重载,一个是方法的覆盖。多态有方法的多态和对象的多态(一个对象多种形态)。

方法的多态

  • 方法的重载和重写(覆盖)

对象的多态

  • 用父类的引用指向子类的具体实现,并且可以随时更换为其他子类的具体实现
public class Animal {

    public void say() {
        System.out.println("我是一个动物");
    }

}

public class Cat extends Animal {

    public void say() {
        System.out.println("我是一个猫");
    }

}

public class Dog extends Animal {

    public void say() {
        System.out.println("我是一个狗");
    }

}

Test

public class Test {

    public static void main(String[] args) {

        Dog dog = new Dog();
        dog.say();

        Cat cat = new Cat();
        cat.say();

    }

}

ps.对象的转型 :

  • 向上转型:子类对象 -> 父类对象 安全 ( Animal animal = new Dog(); )
  • 向下转型:父类对象 -> 子类对象 不安全 ( Dog dog = (Dog) animal; )

猜你喜欢

转载自blog.csdn.net/AnselLyy/article/details/81048533