Java 随心笔记7
提问:
1.方法重写和方法重载的区别?方法重载能改变返回值类型吗?
Overload(方法覆盖)在子父类中,出现了方法生命相同的情况
注意事项: 1.子类的方法声明要与父类相同,
2.子类的重写方法的方法,方法的权限修饰付不能比父类更低。
3.父类私有的方法,子类不能够进行方法重写。
Override(方法重载)
含义:在同一个类中,多个方法名称相同,它们的参数列表不同(个数不同,数据类型不同)
2.this关键字和super关键字分别代表什么?以及他们各自的使用场景和作用。
this:
调用构造方法:this(参数列表)
成员变量名前面加上this.来区别成员变量和局部变量
super:
调用本类中的构造方法 this(实参列表);
调用父类中的空参数构造方法 super();
调用父类中的有参数构造方法 super(实参列表);
一、final关键字
final修饰变量就变成了常量,只能赋值一次;
final修饰类,类不能被继承
final修饰方法,方法不能被重写
二、多态:
a有继承关系
b有方法重写
c父类的引用指向子类的对象
总结:用多态实例化的是父类
不用多态实例化的是子类。
a instanceof b,
向上 向下
三、抽象类
格式: 类:abstract class 类名 抽象类的方法可以是抽象的也可以是非抽象的。
方法:public abstract void 方法名();
特点: 1.抽象类与抽象方法都必须使用abstract来修饰
2.抽象类不能直接创建对象
3.抽象类中可以有抽象的方法,也可以没有抽象的方法
4.抽象类的子类 a.实现了抽象方法的具体化,b.抽象类
四、接口:
定义 interface 接口名{}
类与接口 class 类名 implements 接口名{}
实例化:按照多态的实例化
成员变量:只能是常量(默认修饰符是public static final )
构造方法:没有构造方法,其主要是进行功能的扩展
成员方法:只能是抽象的方法,默认修饰符是 public abstract