java 抽象类和接口概述

抽象类

1、什么是抽象类?
类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类。类本身是不存在的,所以抽象类无法创建对象,即无法实例化。

2、抽象类属于什么类型?
抽象类也属于引用数据类型。

3-抽象类怎么定义?

public abstract class 类名{
	类体;
}

4、抽象类是无法实例化的。
抽象类无法创建对象的,所以抽象类是用来被子类继承的.

public abstract class A{
	类体;
}
class B extends A{
}

5、final和abstract不能联合使用,这两个关键字是对立的。

  • final修饰的类无法被继承
  • abstract修饰的类需要被子类继承

6、抽象类的子类可以是抽象类。

7、抽象类有构造方法

抽象类虽然无法实例化,但是抽象类有构造方法,这个构造方法是供子类使用的。

public abstract class A{
	public A(){}
	public A(int a){}
}
class B extends A{
	//public B(){
	//super()这一段代码无论写不写都会存在,
	//所以在父类中创有参构造方法前,要写上无参构造方法
	}
}

8、什么是抽象方法?
抽象方法表示没有实现的方法,没有方法体的方法。

结构:
public abstract void dosome () ;

抽象方法特点是:
1:没有方法体,以分号结尾。
2:前面修饰符列表中有abstract关键字。

9、抽象类中不一定有抽象方法,抽象方法必须出现在抽象类中。

10、一个非抽象的类,继承抽象类,必须将抽象类中的抽象方法进行覆

public abstract class A{
	public void a();
	public void b();
}
class B extends A{
	public void a(){}
	public void b(){}
}

接口

1、接口也是一种"引用数据类型"。
2、接口是完全抽象的。
抽象类是半抽象,也可以说接口是特殊的抽象类。
3、接口怎么定义?

[修饰符列表] interface 接口名{}

4、接口支持多继承
一个接口可以继承多个接口。

public  interface test { }

interface text{}

class A implements test ,text{
    public A(){
        super();
    }
}

5、接口中包含的内容
接口中只包含两部分内容(没有其它内容):

  • 一部分是:常量。
  • 一部分是:抽象方法。
public  interface test {
    public abstract void a();
    public static final int num=1;
}

6、接口中所有的元紊都是public修饰的。(都是公开的。)
7、接口中的抽象方法定义时: public abstract修饰符可以省略。
8、接口中的常量的public static final可以省略。

public  interface test {
     void a();
     int num=1
}

9、接口中的方法不能有方法体
接口中的方法都是抽象方法,所以接口中的方法不能有方法体。

10、当一个非抽象的类实现接口的话,必须将接口中所有的抽象方法全部实现(重写)。

public  interface test {
    void a();
    void b();
}

class A implements test ,text{

    @Override
    public void a() {
        
    }

    @Override
    public void b() {
        
    }
}

11、extends和implements共存

extends和implements可以共存,extends在前,implements在后。

public  interface test {
    
}
abstract class text{
}

class A extends text implements test {
}

接口的作用:
面向接口编程,可以降低程序的耦合度,提高程序的扩展力。接口的使用离不开多态机制。(接口+多态才可以达到降低耦合度。)以后进行大项目的开发,一般都是将项目分离成一个模块一个模块的,模块和模块之间采用接口衔接。降低耦合度。

抽象类和接口的区别

  1. 抽象类是半抽象的。接口是完全抽象的。
  2. 抽象类中有构造方法。接口中没有构造方法。
  3. 接口和接口之间支持多继承。类和类之间只能单继承。
  4. 一个类可以同时实现多个接口。一个抽象类只能继承一个类(单继承)。
  5. 接口中只能出现常量和抽象方法。

接口一般都是对行为"的抽象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值