继承:
是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类可继承的方法和属性。
继承的好处:
提高代码的可维护性
提高代码复用性
让类与类产生继承关系
继承的弊端:
类与类之间的耦合度过高
继承的特点:
JAVA中类只能够单继承,不能多继承,可以多层继承
class Yy extends Object{}
class Fu extends Y{}
class Zi extends Fu{}
所有的类都直接或间接继承了Object类,Object类称为祖宗类
注意事项:
1.使用关键字 extends让类与类之间 产生继承关系
2.父类私有的成员,子类不能继承
继承中的成员变量关系:
不同名的变量:
子类直接继承使用
同名的变量:
默认访问的是子类自己的成员变量,想访问父类中的同名变量,应使用super.成员变量;
继承中的成员方法关系:
不同名的方法:
子类直接继承使用
同名的方法:
默认访问的是子类自己的成员方法,想访问父类中的同名方法,应使用super.成员方法();
用来表现当前对象中包含的父类对象空间引用
方法重写(override):指在子父类中,出现了方法声明相同的情况,也叫方法覆盖,方法复写
方法重写的注意事项:
1.子类的方法声明要与父类相同(返回值,方法名,参数列表 一模一样)
2.子类要重写父类的方法,方法的权限修饰符不能比父类更低
public default protected private
3.父类私有的方法,子类不能够进行方法重写
方法重载(overload):指在同一个类中,多个方法名称相同,他们的参数列表不同(个数不同,数据类型不同)
抽象:
抽象方法:方法只有声明部分,没有方法体
抽象类:包含抽象方法的类,一定是抽象类,抽象类不一定含有抽象方法
使用abstract修饰的类,是抽象类
抽象类的特点:
1.抽象类和抽象方法必须使用abstract来修饰
2.抽象类不能直接创建对象:抽象类中有抽象方法,没有方法体,无法被执行,所以实例化没有意义
3.抽象类中可以有抽象方法,也可以没有抽象方法
4.抽象类的子类
a.实现了抽象方法的具体类
b.抽象类
接口:理解为是一个特殊的抽象类,但它不是一个类,是一个接口
接口的特点:
1.定义接口用interface关键字
interface Inter{}
2.一个类实现一个接口,实现implements关键字
class Demo implements Inter{}
3.接口不能直接创建对象
通过多态的方式,由子类来创建对象,接口多态
接口中的成员特点:
成员变量:
只能是final修饰的常量
默认修饰符:public static final
构造方法:
无
成员方法:
只能是抽象方法
默认修饰符 public abstract
类与类,类与接口,接口与接口之间的关系
类与类之间:继承关系,单继承,可以是多层继承
类与接口之间:实现关系,单实现,也可以是多实现
接口与接口之间:继承关系,单继承,也可以是多继承
JAVA中的类可以继承一个父类的同时,实现多个接口
this 关键字
this 关键字, 本类对象的引用
this 是在方法中使用的,哪个对象调用了该方法,那么,this就代表调用该方法的对象引用
this什么适合存在的?当创建对象时候,this存在的
this作用:用来区别同名的成员变量与局部变量(this.成员变量)
public void setName(String name){
this.name=name;
}
构造方法:
用来给类的成员进行初始化操作
格式:
修饰符 类名(参数列表){
......
}
构造方法的特点:
1.方法名与类名相同;
2.没有返回值,也没有返回值类型,连void也没有
构造方法什么时候会被调用执行?
只有在创建对象的时候才可以被调用