JAVA SE基础提要--07:继承,抽象,接口

面向对象三大特征:封装性,继承性,多态性

0x01.继承

定义:

子类继承父类的属性和行为。子类可以直接访问父类的非私有属性

格式:

class 父类(){
    ......
}

class 子类 extends 父类(){
    ......
}

特殊情况一:成员变量重名

当子类成员变量与父类成员变量出现重名,访问父类的成员变量需要加上super关键字。

格式:

super.父类成员变量

特殊情况二:方法重名

当子类的方法名与父类的方法名出现重名时,子类方法需要用到重写。

重写(Override)的定义:当子类与父类出现一模一样的方法的时候(返回值类型,变量名,参数列表都相同),会出现覆盖重写,相当于子类重写实现父类的方法。

说明:

1.子类重写父类方法,需要保证子类的权限大于等于父类的权限。

2.子类仍然可以通过super适用原理的方法。

特殊情况三:构造方法的特殊

子类要调用父类的构造方法时,可使用super();但要保证是在子类构造方法的第一行。

如:

public zi{
    super();
}//子类无参构造方法

注意事项:

1.一个子类只可以有一个父类--单继承。

2.一个父类可以有多个子类。

0x02.抽象

定义:

1.没有方法主体的方法称为抽象方法,用abstrct修饰。

2.包含抽象方法的类称为抽象类。

格式:

修饰符 abstrct 返回值类型 方法名(参数列表);

使用:

继承抽象类的子类必须重写抽象方法,否则该类也必须申明为抽象类。

注意事项:

1.抽象类不能创建对象,只有非抽象类可以创建对象。

2.抽象类虽然不可以创建对象,但可以直接调用抽象类中的静态方法。

3.抽象类不一定包含抽象方法,包含抽象方法的类一定是抽象类。

0x03.接口

定义:

接口时java中的一中引用类型,是方法的集合,主要封装了方法,JDK7以前只包含抽象方法,JDK8以后,还包含默认方法和静态方法,JDK9以后,还包含私有方法。

格式:

public interface 接口名称{
    ......
}

接口中的抽象方法:

接口中的抽象方法前的abstract关键字可以省略。

接口中的默认方法:

使用 default 关键字修饰的,供子类调用和子类重写。

接口中的静态方法:

使用 static 关键字修饰的,供接口直接调用。                

接口中的私有方法:

使用 private 关键字修饰,供接口中的默认方法和静态方法调用。

接口的实现:

接口的实现类似于继承,使用 implements 关键字修饰

格式:

class 类名 implements 接口名{
    ......
}

抽象方法的使用:

非抽象类实现接口,必需重写所有的抽象方法。

通过创建对象来调用实现类的已重写的方法。

默认方法的使用:

既可以继承也可以重写,就是普通的方法。

静态方法使用:

只能使用接口名调用,不能通过对象和实现类调用。

私有方法的使用:

私有方法只有接口中的默认方法可以调用。

私有静态方法只有接口中的默认方法和静态方法可以调用。

接口的多实现:

含义:一个类能实现多个接口,并且还能继承一个父类。

多实现抽象方法使用:

非抽象类多实现时,必须实现所有抽象方法,如果有重名,则只需要实现一次。

多实现默认方法使用:

如果多接口中有默认方法重名,必须重写一次。

多实现静态方法使用:

同名也不冲突,因为只可以通过接口名称调用。

特殊情况:

当实现类的父类的成员方法与接口的默认方法重名,优先执行父类的成员方法。

接口的多继承:

含义:一个接口可以继承多个接口。

如果父类的默认方法重名,子类需要重写一次。

接口的注意事项:

1.接口无构造方法,不能创建对象。

2.接口无法定义成员变量,但可以定义常量,用 public static final 修饰。

此章结束。

发布了19 篇原创文章 · 获赞 7 · 访问量 415

猜你喜欢

转载自blog.csdn.net/ATFWUS/article/details/104283513
今日推荐