java继承的设计技巧

1、将公共操作和域放在超类

2、不要使用受保护的域

有些人认为,将大多数的示例域定义为protected是一个不错的主意,只有这样,子类才能够在需要的时候直接访问它们。然而,protected机制并不能够带来更好的保护,其原因主要有两点:

  • 子类集合是无限制的,任何一个人都能够由某个类派生一个子类,并编写代码直接访问protected的实例域,从而破坏了封装性。
  • 在java程序设计语言中,在同一个包中的所有类都可以访问proteced域,而不管它是否为这个类的子类。

不过,protected方法对于指示那些不提供一般用途而应在子类中重新定义的方法很有用。

3、使用继承实现"is-a"关系

4、除非所有继承的方法都有意义,否则不要使用继承

5、在覆盖方法时,不要改变预期的行为

6、使用多态,而非类型信息

无论什么时候,对于下面这种形式的代码

if (x is of type1)
    action1(x);
else if (x is of type2)
    action2(x);

都应该考虑使用多态性。

action1与action2如果表示的相同的概念,就应该为这个概念定义一个方法,并将其放置在两个类的超类或接口中,然后,就可以调用:

x,action();

以便使用多态性提供的动态分派机制执行相应的动作。使用多态方法或接口编写代码比使用多种类型进行检测的代码更加易于维护和扩展。

7、不要过多地使用反射

反射机制使得人们可以通过在运行时查看域和方法,让人们编写出更具通用性的程序。这种功能对于编写系统程序来说极其实用,但是通常不适于编写应用程序。反射式很脆弱的,即编译器很难帮助人们发现程序中的错误,因此只有在运行时才发现错误并导致异常。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值