继承的几个建议

1  把共有的属性放在父类

2  少用保护的域

3 使用继承表达 is-a 关系

4 除非所有的方法的都有意义才使用继承。

5 重载一个方法不要改变预期的行为

6 使用多态,而不是类型信息。

7 不要过多的使用反射

出自core-java

时间: 2024-12-19 09:45:24

继承的几个建议的相关文章

js继承的常用方式

写在前面的话:这篇博客不适合对面向对象一无所知的人,如果你连_proto_.prototype...都不是很了解的话,建议还是先去了解一下JavaScript面向对象的基础知识,毕竟胖子不是一口吃成的. 我们都知道面向对象语言的三大特征:继承.封装.多态,但JavaScript不是真正的面向对象,它只是基于面向对象,所以会有自己独特的地方.这里就说说JavaScript的继承是如何实现的. 学习过Java和c++的都知道,它们的继承通过类实现,但JavaScript没有类这个概念,那它通过什么机

C++中对C的扩展学习新增内容———面向对象(继承)多继承和虚继承

多继承和虚继承 1.多继承的优缺点 (1) 多继承可以复用多个类的代码(函数,变量). (2) 多继承会带来二义性问题. // 1. 多继承优缺点 class Flyable { public: void fly() { cout << "飞翔..." << endl; } void sound() { cout << "嗖嗖..." << endl; } }; class Runnable { public: voi

OS开发UI篇—无限轮播(功能完善)

一.自动滚动 添加并设置一个定时器,每个1.5秒,就跳转到下一条. 获取当前正在展示的位置. 1 [self addNSTimer]; 2 } 3 4 -(void)addNSTimer 5 { 6 // NSTimer timerWithTimeInterval:<#(NSTimeInterval)#> target:<#(id)#> selector:<#(SEL)#> userInfo:<#(id)#> repeats:<#(BOOL)#>

iOS开发UI篇—无限轮播(功能完善)

iOS开发UI篇—无限轮播(功能完善) 一.自动滚动 添加并设置一个定时器,每个2.0秒,就跳转到下一条. 获取当前正在展示的位置. 1 [self addNSTimer]; 2 } 3 4 -(void)addNSTimer 5 { 6 // NSTimer timerWithTimeInterval:<#(NSTimeInterval)#> target:<#(id)#> selector:<#(SEL)#> userInfo:<#(id)#> repe

Java多线程系列-线程创建

1.怎样创建多线程? Java从语言级别实现多线程,因此实现一个多线程程序很easy.有两种方法能够实现多线程,即继承Thread类和实现Runnable接口.由于Java不支持多继承的原因,建议尽可能通过实现Runnable接口实现多线程. 使用Runnable接口实现多线程有例如以下长处: 1.能够避免由于Java的单继承特性而带来的局限. 2.增强程序的健壮性.代码能够被多个线程共享.代码与数据是独立的: 3.适合多个同样程序代码的线程区处理同一资源的情况. 两者之间的不同: *Threa

线程安全和线程不安全的区别

进程和线程: 1)进程是静态的,其实就是指开启的一个程序:而线程是动态的,是真正执行的单元,执行的过程.其实我们平时看到的进程,是线程在执行着,因为线程是作为进程的一个单元存在的. 2)同样作为基本的执行单元,线程是划分得比进程更小的执行单位. 3)每个进程都有一段专用的内存区域.与此相反,线程却共享内存单元(包括代码和数据),通过共享的内存单元来实现数据交换.实时通信与必要的同步操作. 1.创建线程的方式: 创建方式一:继承Thread 1:定义一个类继承Thread 2:覆盖Thread中的

Dictionary源码分析

Dictionary是一个抽象类,Hashtable是它的一个子类. 类的声明:/** The <code>Dictionary</code> class is the abstract parent of any * class, such as <code>Hashtable</code>, which maps keys to values. * Every key and every value is an object. In any one &l

web iis服务器安全性配置实例

自己不维护服务器,不知道维护服务器的辛苦.刚开始为了嫌麻烦,抱有侥幸心理,一些繁琐的安全设置没有配置,结果服务器连一天都没撑过去.经过10天的反复摸索和努力,现在服务器已经稳定工作一个月了,特此整理本文. 我的服务器的应用含:     APACHE:80     IIS:81,由APACHE映射过来     MySql: 3306     SQLServer2005: 5687     svn: 80     FTP: 21 远程桌面:9898 一:关于TCP/IP筛选      TCP/IP的

25-黑马程序员------OC 语言学习笔记--- 协议

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 协议用于定义多个类应该遵守的规范,协议不提供任何实现.协议体现的是规范和实现分离的设计哲学.协议用来用来声明一大堆方法,不能声明成员变量. 只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明.只要某个类遵守了这个协议