2017.12.25 abstract 抽象类、interface接口类

贴心提示:

快捷方式:输入一些关键字,在按键alt+?键就可以补齐(在eclipse中输入代码时)。

三个非访问控制符:static ,final ,abstract.

访问控制符:public ,protected,private.

abstract

注:abstract类 重写方法是类继承(extends)抽象类,再重写。

abstarct可以修饰类和方法。

1.修饰类

定义:abstract修饰的类是抽象类,即有些内容(方法)还没有定义完整,这样的类只是将类头部分定义完整了,也就是类的外观有了(abstract class father{}),在抽象类中可以没有抽象方法。

注:1.抽象类一般是父类,即它可以被其他的类继承,但是不能实例化抽象类。

        2.abstract 和final相克,不能同时修饰一个类。

abstract class father{}

class son extends father{

void son(){

System.out.println("son");

}

}

public class Test1{

public static void main( String[] argps){


son s = new son();

s.son();

}

}

2.修饰方法

abstract修饰的方法是抽象方法,即只定义了方法头部,没有方法体(即没有大括号)。

abstract void tt();

 3.注意

(1)抽象类不一定含有抽象方法,但含有抽象方法的一定是抽象类(即如果一个类含有抽象方法,则此类必须定义为抽象类)。

(2)如果子类没有实现抽象类的所有方法,则子类就定义为抽象类。

interface接口类也是一种抽象类,在接口中定义抽象方法,在类中实现接口然后重写方法。


什么时候使用抽象类呢?

interface 接口类

注:interface类重写方法是类实现(implements)接口类,再重写方法。

接口是一个特殊的抽象类。

java中类之间的继承关系是单重继承,即一个类只有一个直接父类,因此形成的类之间的继承结构是树形结构。

而java中可以用接口弥补它的单重继承,接口之间是多重继承的,即一个接口可以有多个父接口(多个父接口要用逗号隔开),而且一个类可以实现多个接口。

//一个接口可以有多个父接口(多个父接口要用逗号隔开),即接口之间也有继承关系。

interface first{

int a = 1;

void  f1();

}

interface second{

void  s1();

}

interface third  extends first,second{

void  t1();

}


//一个类可以实现多个接口

class c1 implements first,second{

public void f1(){

System.out.println("a=”+a);

}

public void s1(){}

}

1.定义

interface  接口名{

接口体(一个抽象方法)

}

(1)接口中的方法是抽象方法,即没有方法体(没有大括号),都是public,abstract修饰的;

接口中只定义常量,不允许定义变量,都是public,static,final修饰的,在接口中定义方法时,方法的修饰符和变量的修饰符可以省略。但是在类实现接口中的方法修饰符不可以省略。

2.实现-implements

class 类名 implements 接口名{

     //所有接口的方法重写(方法修饰符public 不可以省略。)

}

(1)类实现接口意味着先继承接口,然后再重写方法体 。

如果保证这个类不是抽象类,则要实现每个接口的每一个方法(重写抽象方法)。

一个类实现多个接口,多个接口之间用逗号隔开。

(2)extends必须写在implements前面。

class Bird  extends Animals implements Flyer{

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 你很清楚的知道什么时候用抽象类,什么时候用接口么?p.s. 多文字预警! 1 抽象类和接口简介 1.1 抽象类 ...
    Sharember阅读 2,375评论 9 55
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,766评论 18 399
  • 原文链接: 深入理解Java的接口和抽象类 - 海 子 - 博客园 对于面向对象编程来说,抽象是它的一大特征之一。...
    kristine阅读 687评论 0 8
  • 今天的主要内容是构造方法,static用法,继承,多态,抽象类,接口。由于从今天开始JAVA的学习基本上都是面向对...
    没说再见阅读 460评论 0 0
  • 当从高铁站出站,听到心里在激动的说:半山半水,我来了;王栋老师,我来了!同学们,我们要见面了! 半山半水初印象 把...
    张艳的简书阅读 741评论 1 1