方法重写:
在继承关系中,子类可以重新定义父类继承过来的方法,可以将没有方法体的方法加上方法体,完成具体事项,也可以将有方法体的方法重写,
让该功能更为强大。
当创建对象时,调用的为子类重写后的方法。
注意事项:
权限修饰符,子父类相同或者子类大
方法名、参数,返回值类型子父类必须相同
抽象类/抽象方法:
抽象类概述:当使用面向对象的方式描述现实生活中的事物时,有些概念比较泛泛抽象的,不需要创建实例对象。
而又需要定义这样一个类,规定其子类所应该具备的成员变量和成员方法时,可以将一个事物定义为
抽象类,该类的方法一般为抽象方法,没有实现。具体的实现由子类自己完成。
抽象方法:只有方法声明,没有方法体的方法,叫做抽象方法
抽象类:包含抽象方法的类,就是抽象类
抽象类/抽象方法 注意事项:
抽象类不能创建对象,只能被子类继承,出现的意义就是为了让子类继承,重写方法,规定了其子类的通用功能和属性
如果一个类继承了抽象类,则需要重写其所有抽象方法,才能创建对象,否则仍为抽象类
抽象类不一定包含抽象方法。
抽象类可以有非抽象方法。
instanceof 关键字:
用于引用数据类型判断
格式: 对象名 instanceof 类名
返回值: true, false
作用: 判断某个对象是否属于某种数据类型
接口
(1)当抽象类中的方法都是抽象的时候,java就提供了一种新的表现形式:接口。接口是功能的集合 接口不能创建对象
(2)格式:
接口:
public interface Inter
{
}
实现类:
public class InterImpl implements Inter
{
}
(3)接口的特点:
A:不需要被abstract修饰。
B:类实现接口,可以单实现,还可以多实现。
C:接口可以继承接口,可以单继承,也可以多继承。
D:接口与父类的功能可以重复,均代表要具备某种功能。
(4)抽象类和接口的区别:
A:成员的区别
抽象类:
成员变量:可以是变量,也可以是常量。
//构造方法:有构造方法,用于子类实例化使用。
成员方法:可以是抽象的,也可以是非抽象的。
接口:
成员变量:只能是常量。
默认修饰符:public static final
成员方法:只能是抽象的。
默认修饰符:public abstract
推荐:默认修饰符请自己永远手动给出。
B:类和接口的关系区别
类与类:
继承关系,只能单继承。可以多层继承。
类与接口:
实现关系,可以单实现,也可以多实现。
类还可以在继承一个类的同时实现多个接口。
接口与接口:
继承关系,可以单继承,也可以多继承。
C:体现的理念不同
抽象类里面定义的都是一个继承体系中的共性内容。
接口是功能的集合,是一个体系额外的功能,是暴露出来的规则。
this:本类对象的空间
super:本类对象中的父类对象空间
this:
访问本类对象成员变量 this.变量名
调用本类普通方法 this.方法名(参数)
本类构造方法调用本类其他构造 本类构造方法第一行this(参数)
super:
访问本类对象当中的父类对象成员变量 super.变量名
调用本类对象当中的父类普通方法 super.方法名()
本类构造方法调用父类构造 本类构造方法第一行super(参数)
this与super在调用构造方法时,均必须在第一行,只能调用其中的一个。
父类多个构造,子类调用父类某个参数的构造时,必须保证父类有这个构造,否则报错
final:
final是最终修饰符,可以修饰类、成员方法、变量。
final修饰的类:最终的类,不能被继承
final修饰的变量: 相当于是一个常量, 一次赋值,终身不变
final修饰的方法: 最终的方法,子类不能重写,可以继承过来使用
final修饰的引用数据类型变量,可以修改对象里面的属性内容,不可改变地址值
final修饰的成员变量,不能使用默认值,必须在创建对象之前完成赋值。
static:
静态修饰符,被static修饰的内容属于类不专属于某个对象,多个对象共享使用这一个成员
使用static修饰的成员可以用类名直接访问,建议这样使用:
类名.静态方法名(参数);
类名.静态常量名;
静态修饰的成员只能直接访问静态修饰的成员,不能出现this、super,因为类是优于对象产生
|
|