面向对象的三大特性?分别解释下?
(1)封装:通常认为封装是把数据和操作数据的方法封装起来,对数据的访问只能通过已定义的接口。
(2)继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类/基类),得到继承信息的被称为子类(派生类)。
(3)多态:分为编译时多态(方法重载)和运行时多态(方法重写)。要实现多态需要做两件事:一是子类继承父类并重写父类中的方法,二是用父类型引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为。
几点补充
1)子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,只是拥有。因为在一个子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类的对象;
(2)子类可以拥有自己属性和方法;
(3)子类可以用自己的方式实现父类的方法。(重写)
评论(8)
1、一句话讲明白多态:多态是建立在继承的基础上的,子类继承了父类的属性和方法后是可以扩展的,所以多个不同的子类就可以拥有各自不同的形态,这就是多态!
2、多态的两种类型:编译时多态(方法重载)和运行时多态(方法重写)
3、多态存在的3个必要条件: 要有继承 、要有方法的重写、父类引用指向子类对象。
多态存在的3个必要条件: 要有继承 、要有方法的重写、父类引用指向子类对象。
重载跟多态没关系吧。
子类拥有父类的所有属性和方法是否 子类可以继承父类的所有方法呢?
(遇到好多类似选择题,很是迷惑)
子类会继承父类的所有东西,而修饰符只是影响属性或者方法对外是否可见
要是有夜间模式就好啦哈哈哈 晚上看得眼睛疼 0.0!
看错了,没看到两个合成一句了
实现多态的条件那里,应在增加一项,“子类重写父类的方法”。