黑马程序员_面向对象之继承

------- android培训java培训、期待与您交流! ----------


面向对象之继承特点

  (1)把很多类的相同特征和行为进行抽取,用一个类来描述。让多个类和这个类产生一个关系。这个关系就是继承。

java中用extends关键字表示。

  

(2)继承的体系结构

   A:多个具体的对象,不断的向上抽取共享的内容,最终形成了一个体系。这个体系叫做继承体系。

   B:继承体系的学习和使用原则

   学习顶层的内容。因为他是整个体系的共性内容。

   创建子类使用。也就是使用底层的具体对象。

  (3)继承的特点:

   A:java中只能单继承,没有多继承。

   B:java可以有多重()继承。

  (4)继承的好处:

   继承的出现提高了代码的复用性。

   继承的出现让类与类之间产生了关系,提供了多态的前提。

  什么时候使用继承?xis a y的关系。

  (5)子父类中的成员关系

   A:成员变量

   在子类方法中使用一个变量时:

  该方法的局部变量-->本类中的成员变量-->父类中的成员变量

   B:成员方法

   用子类对象使用一个方法时。

   子类方法-->父类方法。

  

   (6)子类的实例化过程

  子类创建对象时,会先去创建父类的对象,默认是去调用父类的无参构造方法。

   子类构造方法中,第一行默认是super(),因为他继承父类的成员使用,使用前这些成员必须初始化,而他们是父类的成员,所以,必须通过父类进行初始化。所以,会先创建一个父类的对象。当父类没有无参构造方法时必须使用this或者super调用其他的构造方法。

  

  (7)thissuper的区别

   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

   }

  }


------- android培训java培训、期待与您交流! ----------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值