java面向对象之我的总结

面向对象有三大特性继承封装,多态java

1.继承:安全

(1)继承的特色:A,java支持单根继承,不支持多根继承网站

                         B,java支持多层继承(继承体系)this

(2)细节注意:A.子类只能继承父类的非私有成员(成员方法和成员变量)
    B.子类不能继承父类的构造方法,可是咱们能够经过super去访问父类的构造
spa

    C.千万不要由于部分功能而去使用继承,在Java当中,咱们使用继承体系的时候 应该遵循一个"is a"的原则设计

(3) 继承中成员变量的关系:
a.子类的变量名和父类的变量名不一致时,各自找各自的
b.子类和的变量名和父类的变量名一致时:
1.先在子类局部中去寻找,有就使用
2.先在子类成员中去寻找,有就使用
3.在去父类的成员位置,有就使用,没有就报错
code

 

(4)继承中构造方法的关系: 
a.子类中的全部构造方法,都会默认访问父类的无参构造。
b.为何要访问?
由于子类继承父类会使用到父类的数据,因此子类必须先访问父类的
无参构造,以便将父类的数据进行初始化。

注意:子类的构造默认的第一句代码是super();

若是父类没有提供无参构造,那么会有什么结果?
报错;
如何解决?
a.给父类添加一个无参构造
对象

b.经过super关键字去访问父类的其余构造继承

 

2.封装:接口

 

在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。

封装能够被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

要访问该类的代码和数据,必须经过严格的接口控制。

封装最主要的功能在于咱们能修改本身的实现代码,而不用修改那些调用咱们代码的程序片断。

适当的封装可让程式码更容易理解与维护,也增强了程式码的安全性。

封装的优势

  • 1. 良好的封装可以减小耦合。

  • 2. 类内部的结构能够自由修改。

  • 3. 能够对成员变量进行更精确的控制。

  • 4. 隐藏信息,实现细节。


实现Java封装的步骤

1. 修改属性的可见性来限制对属性的访问(通常限制为private),例如:

public class Person { private String name ; private int age ; }

这段代码中,将 name 和 age 属性设置为私有的,只能本类才能访问,其余类都访问不了,如此就对信息进行了隐藏。

2. 对每一个值属性提供对外的公共方法访问,也就是建立一对赋取值方法,用于对私有属性的访问,例如:

public class Person { private String name ; private int age ;​ public int getAge ( ) { return age ; } public String getName ( ) { return name ; } public void setAge ( int age ) { this . age = age ; } public void setName ( String name ) { this . name = name ; } }

采用 this 关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的name变量)之间发生的同名的冲突。

 

3.多态:

同一个对象,在不一样时刻体现出来的不一样状态。

举例:
猫是猫,猫是动物
多态的前提:
a.要有继承关系
b.要存在方法的重写
其实方法重写不是多态必须的,可是不这样作就没有任何意义
c.要有父类的引用指向子类的对象
Fu fu = new Zi();


用代码的实现下多态:
多态中成员访问的特色:
a.成员变量
编译期,看左边,运行期看左边
b.成员方法
编译期,看左边,运行期看右边
c.构造方法
建立子类对象的时候,先访问父类构造,对父类的数据进行初始化
d.静态方法
编译期,看左边,运行期看左边

除了成员方法,其他所有看左边,由于成员方法存在方法重写,重写会覆盖父类 因此运行看子类就能够了

多态的好处:
a.提升了代码的可维护性(继承来体现)
b.提升的代码的扩展性(由多态来体现)

多态的弊端:
不能使用子类的特有的功能。


解决方法:
a.直接建立子类对象便可(能够,可是 不合适也不合理。并且很是耗内存)
b.把父类引用直接强制转换为子类引用(向下转型)

注:部分笔记来源于其余网站!!!

相关文章
相关标签/搜索