标签:
何谓继承 面向对象中,子类继承父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承,滥用继承而导致程序维护上的问题时有所闻。如何正确判断使用继承的时机,以及继承之后如何活用多态,是学习继承时的重点。:
通过extends继承的父类可以是不加abstract关键字的普通类,也可以是加了abstract关键字的抽象类。继承普通类时可以覆写父类的方法,或者创建自己独有的方法,或者这两者都不使用。继承抽象类时,必须覆写抽象类中的全部抽象方法
implements继承的父类是且必须是一个interface定义的接口类,且接口中不能定义方法体,只能拥有私有变量和方法名。子类必须实现所有接口中的方法
如果一个方法中含有与成员变量同名的局部变量,则方法中对该变量的访问以局部变量进行访问,也就是说,方法体中的局部变量覆盖了成员变量。如果要在该范围内访问成员变量,就必须使用this关键字
不能在静态上下文和静态代码块中使用this关键字,编译器不允许这么做。
子类可以重写父类的方法,或者说可以覆盖父类的方法,只要在子类中定义与父类相同的方法就可以了。但是,方法的声明一定要和父类的方法声明一样
已完成最近一段时间主要的代码托管。 截图如下:
重载和覆盖的区别:
重载发生在同一个类之中,重载要求函数名相同,参数不同。特别的函数的返回类型不影响重载。
覆盖发生在父子类之间,覆盖同样要求函数名相同,并且参数也相同。
两同是即是函数名和参数是相同的;两小是抛出的异常更小或相同,返回类型更小或相同;一大是访问权限更大或相同。
构造函数和静态方法支持重载,但是不可以被覆盖。
抽象类和接口的区别:
在设计理念上,一个类只能继承一个抽象类,但是可以实现多个接口。
抽象类可以含有普通成员变量和非抽象的方法,而接口的成员变量和方法都有固定的修饰。即:public static final 和 public abstract。对于继承者来说,抽象类的方法子类可以不全部复写,但是接口的方法抽象类是必须全部复写的。
抽象类也可以implements接口,可以实现接口中的方法,也可以不实现。抽象类不可以被final修饰。抽象类可以包含非抽象方法。
这周感觉学习比较吃力
目标 | 代码行数 | 博客量 | 学习时间 | 重要成长 |
---|---|---|---|---|
目标 | 4000行 | 30篇 | 400小时 | ---- |
第一周 | 100/4000 | 2/30 | 15/400 | hello java |
第二周 | 350/4000 | 3/30 | 40/400 | 流程控制 |
第三周 | 500/4000 | 4/30 | 50/400 | 类与对象、封装 |
第四周 | 700/4000 | 5/30 | 50/400 | 继承、接口 |
标签:
原文地址:http://www.cnblogs.com/5301z/p/5327340.html