Java面向对象之继承
2016-05-16 21:41
465 查看
1 继承:Java是的单继承,意味着一个类只能从一个类继承(被继承的类叫做父类【基类】),Java中的继承使用extends关键
2.当生成子类对象时,Java默认首先调用父类的不带参数的构造方法,然后执行该构造方法,生成父类对象。接下来,再去调用子类的对象,【要想生成子类的对象,首先需要生成父类的对象,没有父类对象就没有子类对象。比如说:没有父亲,接没有孩子】
3.super关键字:super表示对父类对象的引用
4.如果子类使用super()显示调用父类的某个对应的构造方法而不会再去寻找父类的不带参数的构造方法与this一样,super也必须要作为构造方法的第一条执行语句,前面不能有其他的可执行语句
5.关于继承的三点:
1.父类有的,子类也有
2.父类没有的,子类可以增加
3.父类有的,子类可以改变
6.关于继承的注意事项
1.构造方法不能被继承
2.方法和属性可以被继承
3.子类的构造方法隐式地调用父类的不带参数的构造方法
4.当父类没有不带参数的构造方法时子类需要使用super来显式调用父类的构造方法,super指的是对父类的引用
5.super关键字必须是构造方法中的第一行语句
7.方法重写又叫做覆写:子类与父类的方法返回类型一样,方法名称一样,参数一样,这样我们说子类与父类的方法构成了重写关系
8.方法重写与方法重载之间的关系:重载发生在同一个类内部的两个或多个方法,重写发生在父类与紫烈之间的关系
9.当两个方法形成重写关系时候,可以在子类方法通过super.run()形式调用父类的run方法,其中super.run()方法不必放在第一行语句,因为此时父类对象已经构造完毕,先调用父类的run方法还是先代用子类的run方法是根据程序的逻辑实现的
2.当生成子类对象时,Java默认首先调用父类的不带参数的构造方法,然后执行该构造方法,生成父类对象。接下来,再去调用子类的对象,【要想生成子类的对象,首先需要生成父类的对象,没有父类对象就没有子类对象。比如说:没有父亲,接没有孩子】
3.super关键字:super表示对父类对象的引用
4.如果子类使用super()显示调用父类的某个对应的构造方法而不会再去寻找父类的不带参数的构造方法与this一样,super也必须要作为构造方法的第一条执行语句,前面不能有其他的可执行语句
5.关于继承的三点:
1.父类有的,子类也有
2.父类没有的,子类可以增加
3.父类有的,子类可以改变
6.关于继承的注意事项
1.构造方法不能被继承
2.方法和属性可以被继承
3.子类的构造方法隐式地调用父类的不带参数的构造方法
4.当父类没有不带参数的构造方法时子类需要使用super来显式调用父类的构造方法,super指的是对父类的引用
5.super关键字必须是构造方法中的第一行语句
7.方法重写又叫做覆写:子类与父类的方法返回类型一样,方法名称一样,参数一样,这样我们说子类与父类的方法构成了重写关系
8.方法重写与方法重载之间的关系:重载发生在同一个类内部的两个或多个方法,重写发生在父类与紫烈之间的关系
9.当两个方法形成重写关系时候,可以在子类方法通过super.run()形式调用父类的run方法,其中super.run()方法不必放在第一行语句,因为此时父类对象已经构造完毕,先调用父类的run方法还是先代用子类的run方法是根据程序的逻辑实现的
class Animal{ public void run(){ System.out.println("animal is running"); } } class Dog extends Animal{ public void run(){ super.run(); System.out.println("dog is running"); } } public class InheritenceTest2 { public static void main(String[] args) { // TODO 自动生成的方法存根 Dog dog = new Dog(); dog.run(); } }9.在定义一个类的时候,如果没有显式指定该类的父类,那么该类就会继承java.lang.Object类(JDK提供的一个类Oject类是Java中的所有类的直接或者间接的父类)
相关文章推荐
- Java面向对象之多态
- 深入java之java语言基础(一)
- Java面向对象之多态
- Java中的反射机制复习
- spark学习11之在idea中将eclipse导入的java project改成maven project
- [疯狂Java]NIO.2:文件属性
- spring 获取 bean
- android开发使用eclipse遇到的问题
- java之StringTokenizer
- Java大数求解ACM(HDU)
- Java基础-第6天
- java堆与栈
- Spring框架的初步学习
- Java学习之InputStream中read()与read(byte[] b)
- Java学习之InputStream中read()与read(byte[] b)
- Spring IoC
- 关于Myeclipse10中建立web工程添加spring配置文件出现红叉错误提示的问题
- 【Java】垃圾回收机制2––––finalize
- JAVA设计模式之工厂模式
- java实现生产者消费者问题