首页 > 代码库 > 继承20161223

继承20161223

构造器

1、构造器是类中与类名称相同的函数

有如下两个属性:  
a.构造器的名称与类名相同  
b.构造器不能声明返回值,也不能返回void  

其声明方式为:访问修饰符 类名称(形参,形参····)

例如: public Student(){} //声明一个无参的构造函数 public Student(String name,int age){}//声明两个参数的构造函数

2、默认构造器

如果在类中未声明构造器的话,系统会自动添加构造器,成为默认构造器,此构造器不返回任何值。  

3、 构造器的调用

在java中如果使用new关键字实例化一个对象时,构造器就被调用了。

例如: Yellow yellow=new Yellow();//调用的是Yellow类中的默认构造函数。

注意:如果已经在类中声明了有参构造函数,系统将不会生成默认构造函数。在实例化对象时,需要传入参数。

例如: Yellow yellow=new Yellow(name ,age);//在类Yellow中声明了2个参数name、age,而没有创建无参构造器,则在实例化是传入参数。如果不传入参数,则会报错。

4、本类中构造器的使用,this关键字

this();//调用无参构造方法
this(name,age);//调用两个参数的构造方法
注意:在本类中构造器之间调用时(构造器之间可以相互调用),需要有一个构造器作为出口(一般为无参构造方法)。

继承

1、概念:

继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
java中只允许单继承,但父类也可以有父类。如果父类没有显示继承类,则此类隐式的继承Object类

2、实现方式

使用extends关键字继承
当一个类实现了继承后,父类中的所有属性及方法(除private修饰的)子类均拥有。

3、调用父类的属性及方法

使用super关键字调用父类中的属性及方法
如果父类中没有无参的构造函数,那么子类必须重写构造函数,且必须与父类中参数一致,并在第一行调用父类的构造函数

4、super与this的区别

a、super使用的是子类调用父类的构造方法,this是指调用本类中的构造方法。
b、程序中super与this一样,都需要放在首行;如果是在子类中调用,则使用super方法。
c、实例化子类时,优先调用父类中的构造方法,在调用子类构造方法。

5、重写与重载

重写:是发生在子类与父类之间,子类的方法返回值、访问类型、方法名及形式参数均与父类相同。
重载:是在一个类中,方法的方法名一样,返回值、参数不同。

6、equals与“==”的区别

a、java中,“==”判断内存地址是否相同,基本数据类型除外(基本数据类型存放在栈中)
b、equals比较两个内存地址所存放的值是否相同
c、java中有一个特例String类型
注意:当String声明时,除使用new关键字外,如果字符串一样,则内存地址一样

例如:

    String str1="zhangsan";
    String str2="zhangsan";
    System.out.println(str1==str2);  //返回值为true  

7、final关键字

a、在使用final声明变量是,变量变为常量,不能被更改;
b、使用final声明的方法,不能被重载,也不能被子类重写;
c、使用final声明的类,不能被继承;

继承20161223