黑马程序员 Java基础难点总结day2
来源:互联网 发布:军人网络保密准则 编辑:程序博客网 时间:2024/05/29 19:10
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
11.子父类的构造函数:
1、父类中如果没有空参构造函数,那么子类构造函数必须用this(子类中的构造函数)或者super(父类中的构造函数)指定要访问的构造函数。
2、 如果子类构造函数,用this访问了子类中的另一个构造函数,则默认super()消失。因为this和super都必须存在构造函数的第一行。所以只有一个,但是必须保证有其他构造函数,访问父类构造函数。
3、super必须要在第一行,因为必须要先初始化父类。
12、对象实例化过程,以Person p = new Person();为例:
1. JVM会读取指定的路径下的Person.class文件,并加载进内存,并会先加载Person的父类(如果有直接的父类的情况下)。
2. 在内存中开辟空间,并分配地址。
3. 并在对象空间中,对对象的属性进行默认初始化。
4. 调用对应的构造函数进行初始化。
5. 在构造函数中,第一行会先到调用父类中构造函数进行初始化。
6. 父类初始化完毕后,再对子类的属性进行显示初始化。
7. 再进行子类构造函数的特定初始化。
8. 初始化完毕后,将地址值赋值给引用变量。
13.匿名对象的调用
当方法只需要调用一次时,就可以用匿名对象调用,调用完成后就被垃圾回收器回收,提高了效率。
例如:student s = new student();s.show();这里是学生对象调show方法。
匿名对象调用为:new student().show();
这里的new student()可以理解为一个新建的对象,对象调show()方法。
14.抽象类和接口的区别
抽象类:需要继承才能创建对象,只有单继承。有抽象方法也有非抽象方法,is a关系。
接口:需要去实现,多实现。只有抽象方法。like a关系。
16.方法重写和方法重载的区别
方法重写:子类和父类中声明了一模一样的方法。
方法重载:本类中出现了方法名一样,但参数列表不一样的方法,与返回值无关,就要重新加载此方法。
重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。
重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。
至于Overloaded的方法是否可以改变返回值的类型这个问题,要看你倒底想问什么呢?这个题目很模糊。如果几个Overloaded的方法的参数列表不一样,它们的返回者类型当然也可以不一样。但我估计你想问的问题是:如果两个方法的参数列表完全一样,是否可以让它们的返回值不同来实现重载Overload。这是不行的,我们可以用反证法来说明这个问题,因为我们有时候调用一个方法时也可以不定义返回结果变量,即不要关心其返回结果,例如,我们调用map.remove(key)方法时,虽然remove方法有返回值,但是我们通常都不会定义接收返回结果的变量,这时候假设该类中有两个名称和参数列表完全相同的方法,仅仅是返回类型不同,java就无法确定编程者倒底是想调用哪个方法了,因为它无法通过返回结果类型来判断。
17.final修饰局部变量
修饰基本类型时,最终值不变。修饰引用类型时,引用对象地址值不变,但要注意的是,存取的数据可以变化。
局部内部类访问局部变量时,局部变量必须用final修饰,因为局部变量随着调用的消失,但是变量还有用。
18.多态的好处与弊端
多态的好处:提高了代码的维护性(由继承保证,继承的唯一性)。
提高了代码的扩展性(由多态保证)。
多态的弊端:不能使用子类特有功能,但是如果想要使用,可以由以下两种
方法:
1. 创建子类对象调用,但是太占内存,不合理。
2. 把父类的引用类型强制转换给子类,向下转型。
19.对象间的转型问题
向上转型:Fu f = new Zi();
向下转型:Zi z = (Zi)f;
但向下转型的前提为父类必须能转为子类。
20.权限修饰符
private 默认(friendly) protected public
本类 能 能 能 能
无关类 能 能 能
不同包下子类 能 能
不同包下无关类 能
能代表能访问
- 黑马程序员 Java基础难点总结day2
- 黑马程序员 Java基础难点总结day1
- 黑马程序员 Java基础难点总结day3
- 黑马程序员 Day2 Java基础常量与变量等
- 黑马程序员-java基础总结
- 黑马程序员:java基础总结
- 黑马程序员-----Java基础总结
- 黑马程序员--Java基础总结
- 黑马程序员--Java基础总结
- 黑马程序员-JAVA基础总结
- 黑马程序员-基础学习之day1-day2
- 黑马程序员__java基础视频day1、day2
- java基础重点&难点总结
- 黑马程序员 java基础 基础细节总结
- 黑马程序员 java学习笔记 Day2:线程
- 黑马程序员:Java基础总结----java注解
- 黑马程序员java自学总结--java基础
- 黑马程序员_关于JAVA 中IO流中重难点知识要点总结
- 黑马程序员---成长之路-----OC之基础篇block和typede
- 安卓中通知(Notification)的基本使用方法
- 黑马程序员---成长之路-----OC之基础篇Foundation框架
- nginx系列(八)nginx失效转移与超时处理
- Android Animation --ScaleAnimation
- 黑马程序员 Java基础难点总结day2
- 黑马程序员 Java基础难点总结day3
- o2o模式的未来在哪里?
- 初学者C++学习笔记 零碎小知识点
- HashMap、HashSet、TreeMap、TreeSet判断元素相同
- [无线与数据]无线USB下载增强器设计
- 黑马程序员 Java基础——面向对象思想
- Oracle pl/sql编程 10---case语句
- xcode快捷键