黑马程序员_面向对象之继承
2013-05-19 19:23
183 查看
------- android培训、java培训、期待与您交流! ----------
面向对象之继承特点
(1)把很多类的相同特征和行为进行抽取,用一个类来描述。让多个类和这个类产生一个关系。这个关系就是继承。
java中用extends关键字表示。
(2)继承的体系结构
A:多个具体的对象,不断的向上抽取共享的内容,最终形成了一个体系。这个体系叫做继承体系。
B:继承体系的学习和使用原则
学习顶层的内容。因为他是整个体系的共性内容。
创建子类使用。也就是使用底层的具体对象。
(3)继承的特点:
A:java中只能单继承,没有多继承。
B:java可以有多重(层)继承。
(4)继承的好处:
继承的出现提高了代码的复用性。
继承的出现让类与类之间产生了关系,提供了多态的前提。
什么时候使用继承?“x”is a y的关系。
(5)子父类中的成员关系
A:成员变量
在子类方法中使用一个变量时:
该方法的局部变量-->本类中的成员变量-->父类中的成员变量
B:成员方法
用子类对象使用一个方法时。
子类方法-->父类方法。
(6)子类的实例化过程
子类创建对象时,会先去创建父类的对象,默认是去调用父类的无参构造方法。
子类构造方法中,第一行默认是super(),因为他继承父类的成员使用,使用前这些成员必须初始化,而他们是父类的成员,所以,必须通过父类进行初始化。所以,会先创建一个父类的对象。当父类没有无参构造方法时必须使用this或者super调用其他的构造方法。
(7)this和super的区别
this:代表本类对象的引用。
它用于区分局部变量与成员变量;
也可以使用成员:this.成员变量,this.成员方法,this(参数)构造方法。
super:代表父类的父类的引用。
它用于区分本类变量与父类变量;
也可以使用成员:super.成员变量,super.成员方法,super(参数)构造方法。
注意事项:
不要为了获取某个功能就去继承一个类;
父类中的私有成员子类是访问不到的。
方法的复写
当子类出现父类一模一样(返回值类型,方法名,参数)的方法时,就会出现方法的复写。
使用场合:当子类需要父类的功能,而功能主题子类有自己特有的内容时,可以复写父类中的方法,这样即沿袭了父类的功能,有定义了子类特有的内容。
弊端:
通过复写会改变父类该方法的内容;
注意:
1.方法复写时,子类方法权限一定要大于等于父类方法权限,静态方法只能复写静态方法。
2.私有的方法不能被重写;
3.可以通过super语句去调用父类被重写的方法;
面试题:
class Fu{
int num = 10;
public Fu() {
System.out.println("Fu num:"+num);
}
public void method(){
System.out.println("Fu method");
}
public void function(){
System.out.println("Fu function");
}
}
class Zi extends Fu{
int num = 20;
public Zi(){
System.out.println("Zi num:"+num);
}
public void show(){
int num = 30;
System.out.println("num:"+num);
System.out.println("num:"+this.num);
System.out.println("num:"+super.num);
}
public void method(){
System.out.println("Zi method");
}
}
class ExtendsTest{
public static void main(String[] args)
{
//请按照顺序写出下列程序的运行结果。
Zi zi = new Zi();//10,20
zi.show();//30,20,10
zi.method();//Zi method
//zi.function();//Fu function
}
}
------
9a07
- android培训、java培训、期待与您交流! ----------
面向对象之继承特点
(1)把很多类的相同特征和行为进行抽取,用一个类来描述。让多个类和这个类产生一个关系。这个关系就是继承。
java中用extends关键字表示。
(2)继承的体系结构
A:多个具体的对象,不断的向上抽取共享的内容,最终形成了一个体系。这个体系叫做继承体系。
B:继承体系的学习和使用原则
学习顶层的内容。因为他是整个体系的共性内容。
创建子类使用。也就是使用底层的具体对象。
(3)继承的特点:
A:java中只能单继承,没有多继承。
B:java可以有多重(层)继承。
(4)继承的好处:
继承的出现提高了代码的复用性。
继承的出现让类与类之间产生了关系,提供了多态的前提。
什么时候使用继承?“x”is a y的关系。
(5)子父类中的成员关系
A:成员变量
在子类方法中使用一个变量时:
该方法的局部变量-->本类中的成员变量-->父类中的成员变量
B:成员方法
用子类对象使用一个方法时。
子类方法-->父类方法。
(6)子类的实例化过程
子类创建对象时,会先去创建父类的对象,默认是去调用父类的无参构造方法。
子类构造方法中,第一行默认是super(),因为他继承父类的成员使用,使用前这些成员必须初始化,而他们是父类的成员,所以,必须通过父类进行初始化。所以,会先创建一个父类的对象。当父类没有无参构造方法时必须使用this或者super调用其他的构造方法。
(7)this和super的区别
this:代表本类对象的引用。
它用于区分局部变量与成员变量;
也可以使用成员:this.成员变量,this.成员方法,this(参数)构造方法。
super:代表父类的父类的引用。
它用于区分本类变量与父类变量;
也可以使用成员:super.成员变量,super.成员方法,super(参数)构造方法。
注意事项:
不要为了获取某个功能就去继承一个类;
父类中的私有成员子类是访问不到的。
方法的复写
当子类出现父类一模一样(返回值类型,方法名,参数)的方法时,就会出现方法的复写。
使用场合:当子类需要父类的功能,而功能主题子类有自己特有的内容时,可以复写父类中的方法,这样即沿袭了父类的功能,有定义了子类特有的内容。
弊端:
通过复写会改变父类该方法的内容;
注意:
1.方法复写时,子类方法权限一定要大于等于父类方法权限,静态方法只能复写静态方法。
2.私有的方法不能被重写;
3.可以通过super语句去调用父类被重写的方法;
面试题:
class Fu{
int num = 10;
public Fu() {
System.out.println("Fu num:"+num);
}
public void method(){
System.out.println("Fu method");
}
public void function(){
System.out.println("Fu function");
}
}
class Zi extends Fu{
int num = 20;
public Zi(){
System.out.println("Zi num:"+num);
}
public void show(){
int num = 30;
System.out.println("num:"+num);
System.out.println("num:"+this.num);
System.out.println("num:"+super.num);
}
public void method(){
System.out.println("Zi method");
}
}
class ExtendsTest{
public static void main(String[] args)
{
//请按照顺序写出下列程序的运行结果。
Zi zi = new Zi();//10,20
zi.show();//30,20,10
zi.method();//Zi method
//zi.function();//Fu function
}
}
------
9a07
- android培训、java培训、期待与您交流! ----------
相关文章推荐
- 黑马程序员——Java面向对象之一继承
- 黑马程序员—4—Java基础: 面向对象继承学习笔记和学习心得体会
- 黑马程序员-面向对象-07天-3 (继承)
- 黑马程序员-面向对象-继承
- 黑马程序员_java面向对象总结【3】(继承、接口和多态)
- 黑马程序员面试题面向对象一(封装,构造函数,this,static,单例设计模式,继承)
- 黑马程序员@java面向对象之继承
- 黑马程序员-面向对象-继承
- 黑马程序员—— Java 基础 面向对象之继承 (复习)
- 黑马程序员 java学习笔记——面向对象2:继承
- 黑马程序员 面向对象--->继承
- 黑马程序员----java面向对象02(继承、final)
- 黑马程序员 04 面向对象_继承_抽象_多态
- 黑马程序员——学习日记6 java面向对象之继承
- 黑马程序员_第五天 面向对象(二)_继承、多态、内部类
- 黑马程序员--面向对象之继承与多态
- 黑马程序员--------面向对象继承和多态
- 黑马程序员---面向对象(二)(继承)
- 黑马程序员 面向对象特征 封装、继承、多态总结
- 黑马程序员--------java面向对象 继承、接口、多态、Object类