1.什么是面向对象?谈谈你对面向对象的理解?
①面向对象是一种编程思想,在面向对象这种编程思想出现以来,主流的是以c语言为首的面向过程的语言,更多的是按照计算机处理事务的思想来编写代码。在现实生活中的任何物体都可以归为一类事物,而每一个个体的就是这一类事物的实例。面向对象的编程是以消息为驱动,以对象为中心。程序 = 对象 + 消息
② 面向对象主要有三种特性。
1.封装
封装就是将一类事物的属性和行为抽象成类,使其属性私有化,行为公开化,提高了数据隐秘行的同时,让代码模块化。使代码复用性更高
2.继承
继承就是进一步将一类事物共有的属性和行为抽象成一个父类,而每一个子类是一个特殊的父类–有父类的行为和属性,也有自己特有的行为和属性。这样做拓展了已存在的代码块,进一步提高了代码的复用性
3.多态
同一个事物,在不同时刻的表现出来的不同状态
比如猫:猫是动物,猫是猫
动物 d = new 猫();
多态存在的条件:1.要有子父类继承关系或者接口的实现关系 2.子类重写父类方法 3.父类对象的引用指向子类实例对象
class 动物{
public void show(){
System.out.println("我是动物");
}
}
class 猫 extends 动物{
@override
public void show(){
System.out.println("我是猫")
}
}
动物 d = new 猫();//实现多态
多态有编译时多态和运行时多态,编译时多态体现在方法重载。
运行时多态体现在 父类对象的引用的子类实例对象调用子类重写的方法,此时会调用子类的方法
多态时成员的特点:
①成员变量
编译时看左边,运行时看左边
②成员函数(动态绑定)
编译时看左边,运行时看右边
③静态函数(静态绑定)(个人认为没有多态)
编译时看左边,运行时看左边。