java中类机制(一)


1.组合:在一个新建类中使用已创建的一个类对象。

2.继承:继承语法指的是类B继承自某个类A,A为基类即父类,B为导出类即子类

  

public class B extends A {
}

 

(1)继承语法涉及的访问权限,基类中的某些成员变量,和成员方法,public或protect的导出类有使用权限。

(2)继承中涉及的构造函数的初始化:首先明白的一点是当创建了一个导出类的对象时候,该对象包含了一个基类的子对象。这个子对象和直接创建出的基类对象无区别。这个时候初始化相当重要,就涉及到构造函数,当无参数的时候,java会自动的帮创建:


 

class Art {
  Art() {
    System.out.println("Art constructor");
  }
}

class Drawing extends Art {
  Drawing() {
    System.out.println("Drawing constructor");
  }
}

public class Cartoon extends Drawing {
  Cartoon() {
    System.out.println("Cartoon constructor");
  }
  public static void main(String[] args) {
    Cartoon x = new Cartoon();
  }
}


   当有参数的时候:必须采用super关键字初始化:

class Game {
  Game(int i) {
    System.out.println("Game constructor");
  }
}

class BoardGame extends Game {
  BoardGame(int i) {
    super(i);
    System.out.println("BoardGame constructor");
  }
}

public class Chess extends BoardGame {
  Chess() {
    super(11);
    System.out.println("Chess constructor");
  }
  public static void main(String[] args) {
    Chess x = new Chess();
  }
}

 

(3)向上转型:所谓的导出类和基类,实际上指的是表现新类和基类的关系,用新类是基类的一种类型。导出类只是基类的超集。如果导出类向基类进行向上转型,则继承是必须的,如果不需要,那就要考虑是否要使用继承关系

 

(4)覆盖的问题:所谓的覆盖。。导出类只覆盖protect和public的方法,基类中有private或final的方法的时候,不是覆盖,如果有相同的问题,那只是一个新的方法。

(5)继承的,在创建对象的时候,先加载类,当基类和导出类都加载完后,再创建对象的。

 

3.继承和组合:

(1)组合技术通常是用现有的类的功能而非它的接口。实现功能而已,而继承则是使用现有类,并特殊化这个类

(2)可以使用代理,即在新类中同样是实现方法,但不自己执行,让现有类去执行。

(3)判断是使用继承还是组合,就判断这个类是否有必要向上转型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值