黑马程序员----JAVA----面向对象小结(2)----
来源:互联网 发布:淘宝上买到假酒怎么办 编辑:程序博客网 时间:2024/06/04 18:08
----------------------------------android培训、java培训、期待与您交流!------------------------------
什么是单例设计模式:
为了避免其他程序创建对象 (将构造函数私有化)
为了让别的程序访问到本类的对象 (在类中创建本类的对象)
为了方便其他程序对自定义程序进行访问,可以对外提供一个方法( 提供一个方法获取该对象);
饿汉式:类一加载进内存,就已经创建好了对象
class Single{
private Single(){}
private static Single s=new Single();
public static Single getInstance(){
return s;
}
}
懒汉式:对象的方法被调用时,才初始化,所以交叫延迟加载
class Single{
private Single(){}
private static Single s=null
public static Single getInstance(){
if(s==null){
s=new Single();
}
return s;
}
}
继承的由来:
如果多个类中存在着相同的属性和方法,那么可以将其相同的部分提取出来,放到一个单独的类中,然后让原先的类去继承这个单独的类,这样原先的类就没有必要去定义那么多相同的属性和方法了。
继承的关键字:extends
子类可以添加自己的功能。父类中的属性和方法也都继承下来了。
继承的好处:
提高了代码的重用性
为多态提供了先觉条件
java中只支持单继承:
也就是说,一个爸爸可以有多个儿子,但一个儿子只能有一个爸爸;
当你调用一个对象的方法时,子类没有就去父类中找;
构造器不能继承,private的属性和方法也是无法继承的;
super :
在一个类的内部,可以通过super去访问父类自对象;
可以调用父类的属性,方法(但是不能是private)
可以调用父类的构造函数
当一个类中只有一个private的构造函数时,那么这个类将不能被继承;
什么时候使用super:
在子类构造器,显示调用父类的构造器;
在子类中访问父类的属性或者方法
当子类和父类有相同的属性时,想要使用父类的属性必须使用super;
重写(覆盖):
在子类中写一个方法和父类中的方法一模一样,就是重写;
private不能重写
方法名和参数列表必须相同;
返回值必须是父类的返回值,或者是其子类的返回值
多态:
就是父类的引用指向子类的对象实体;
只有向上转型才会有多态,所以经常说的向上转型就是多态;
调用方法是由实体来决定的,而不是引用, 例如: Person p=new Student();这个就是个多态,父类引用指向 子类对象实体;
构造器(构造函数):
当子类继承了父类,父类又写了有参的构造函数,和无参的构造函数,当子类调用父类 构造器时,可以显示调用构造器(super()),也可以不写(super());因为不写,子 类会隐式调用父类的无参构造器。
当父类只有一个有参的构造函数,子类在调用父类的构造器时,必须显示调用父类的构 造器,如果不显示调用,会报错,因为父类没有无参的构造器
----------------------------------android培训、java培训、期待与您交流!------------------------------
- 黑马程序员----JAVA----面向对象小结(2)----
- 黑马程序员---面向对象小结
- 黑马程序员---Java面向对象编程思想小结
- 黑马程序员-java面向对象2
- 黑马程序员-java面向对象2
- 黑马程序员-Java面向对象2
- 黑马程序员---java基础---2面向对象
- 黑马程序员---java基础---面向对象2
- 黑马程序员--面向对象2(Java)
- 黑马程序员----java----面向对象2
- "黑马程序员"Java面向对象(2)
- 黑马程序员-Java基础:面向对象-2
- 黑马程序员 Java基础 面向对象2
- 黑马程序员_Java中的面向对象小结
- 黑马程序员_面向对象小结
- 黑马程序员 java面向对象
- “黑马程序员”-Java面向对象
- 黑马程序员--java面向对象
- 安装mysql,在./configure时出现错误:error: No curses/termcap library found的解决办法
- tomcat的编码设置(转)
- Windows socket编程 udp协议传送封装自定义帧
- HDU4436 后缀数组
- win7安装IIS及将网站发布到IIS上
- 黑马程序员----JAVA----面向对象小结(2)----
- loopup、计算字段如果是汉字字段,不能用TWideStringField!
- 设计模式之装饰者模式
- mac下安装automake
- 让Django支持数据库长连接(可以提高不少性能哦)
- Thinking In Java 第一天
- Plan Would Put a Bank in Every Browser
- 我对linux理解之i2c .
- Linux之Proc文件系统详解