java软件实训Day4

一、封装

实体类封装的步骤:1、私有化成员变量:
2、提供公有的get/set方法
3、提供无参/有参/全参的构造方法
4、重写toString()、equals和hashCode)
 

二、继承

公共类中已有特征和行为而在多个类型只需要编写自己独有特征和行为的机制,叫做继承。使用继承提高了代码的
复用性,可维护性以及扩展性。在ava语言中使用extends(扩展)关键字来表示继承关系。
java 只支持单继承,可以有多重继承,一个子类只能有一个父类,而一个父类可以有多个子类(简单来说就是一个
孩子一个爹,一个爹可以有多个孩子)
注意:子类 is a 父类
如:public class Worker extends Persong-表示Worker类继承自Person类其中Person类叫做超类、父类、基类。其中Worker类叫做派生类、子类、孩子类。

三、final

final关键字
final关键字:
final关键字用于修饰星屋性、变量(进天女星变为了些盟,无去再对其再次进行赋值)
final修饰的局部变量,只能赋值一次 同以先声明白赠值final修饰的成员变量时,必须在声明戴值。
final关键字用于修饰类
final修饰类,不可以被继承final关键字用于修饰方法
final修饰方法,不允许被子类重写
全局常量 (public static final)全局常量的命名规范:
由一个或多个单词组成,单词与胆调之间必须使用下划代隔开,单词中所有字母大写。
***final、finally、finalize的区别***

1、final可以修饰类,变量,方法,修饰的类不能被继承,修饰的变量不能重新赋值,修饰的方法不能被重写。

2、finally用于抛异常,finally代码块内语句无论是否发生异常,都会在执行finally,常用于一些流的关闭

3、finalize方法用于垃圾回收

finalize是方法名。java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者被执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。 

四、多态

语法格式父类类型引用变量名=new 子类类型0);//父类型的引用指向子类型的对象【多态的核心】如:Person pw = new Worker();
Shape shape = new Rect();

pw.show();
多态的效果(1)当父类类型的引用指向子类类型的对象时,父类类型的引用可以直接调用父类独有的方法;(2)当父类类型的引用指向子类类型的对象时,父类类型的引用不可以直接调用子类独有的方法;(3)对于父子类都有的非静态方法来说,编译阶段调用父类版本,运行阶段调用子类重写的版本:(4)对于父子类都有的静态方法来说,编译和运行阶段都调用父类版本;

五、面试题:重写 (Override) 和重载 (Overload) 的区别
1、发生的位置
重载:一个类中
重写:子父类中
2、参数列表限制
重载:必须不同
重写:必须相同
3、返回值类型
重载:与返回值类型无关
重写:返回值类型必须一致
4、访问权限:
重载:与访问权限无关
重写:重写后(子)的方法的访问权限不能小于被重写 (父)方法的权限5、异常处理:
重载:跟异常没有关系
重写:异常范围可以小,但是不能抛出新的异常

六、抽象类

常见问题
1、
抽象类能否使用fina1声明?
不能,因为Eina1属修饰的类是不能有子类的,而抽象类必须有子类才有意义,所以不能。
2、 抽象类能否有构造方法?
能有构造方法,而且子类对象实例化的时候的流程与昔通类的继承是一样的, 都是要先调用父类中的构造方法(默认
是无参的),之后再调用子类自己的构造方法。
抽象类和普通类的区别
1、抽象类必须用pub1ic或proteccea修饰《如果为pzLvate修饰,那么子类则无法继承,也就无法实现其抽象方法)。
默认缺省为 public
2、抽象类不可以使用new关键字创建对象,但是在子类创建对象时,抽象父类也会被实例化。
3、如果一个子类继承抽象类,那么必须实现其所有的抽象方法。如果有未实现的抽象方法,那么子类也必须定义为abstract类

七、接口面试题:接口和抽象类的区别
1、抽象类要被子类继承,接口要被类实现。
2、接口只能声明抽象方法,抽象类中可以声明抽象方法,也可以写非抽象方法。
3、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
4、抽象类使用继承来使用,无法多继承。 接口使用实现来使用,可以多染现
5、抽象类中可以包含gtatic方法 去,但是接口中不允许 (静态方法不能被子类重写,因此接口中不能声明静态方法
6、接口不能有构造方法,但是抽象类可以有

八、希望通过努力让自己与更好的自己在未来不断一遍遍重逢~~~~

你可能感兴趣的:(java,开发语言)