抽象类与接口

抽象类关键字:abstract

接口关键字:interface

一、抽象类

public abstract class Shape {
	public abstract void draw(Graphics g);		//abstract方法后面不能加{},即不能实现
    
    public void Show(){
        System.out.println("This is abstract");    //可以有非抽象类方法,子类不用覆盖
    }
}

1.抽象类:关键字abstrac,与具体相对,用于表达一个概念,而不能创建对象;
2.抽象类可以有变量,abstract类可以没有abstract方法,但类里若有抽象方法,则该类必须成为抽象类;
3.继承自抽象类的子类必须覆盖父类的抽象函数,否则自己将成为抽象类。 

public class Rectangle extends Shape {
    @Override		                        //覆盖父类抽象函数
	public void draw(Graphics g) {
		g.drawRect(x, y, width, height);
	}
}

4.抽象方法必须都是public,非抽象方法可以是private或protected 

二、接口

        Java中的接口(interface)类似于是一种特殊的抽象类,他比普通抽象类更加纯粹;类描述的是对象的属性和方法,接口则主要是包含了类要实现的方法

1.接口的创建

        关键字:interface; 

public interface 接口名 {
    public static final 类型 常量名 = 值;
    public abstract 返回类型 接口方法名(形参表);
    ...
}

        接口虽然是一种抽象类,但接口所有的方法都要加abstract ,即所有方法都不能有具体实现方式。

2.接口的实现 

        类继承用extends,接口实现用implements;一个类只能继承一个父类,但却可以实现多个接口。这里要注意:接口属于抽象类的一种,故实现接口后要像继承抽象类一样,覆盖所有接口的方法!

public class 类名 extends 父类 implements 接口1,接口2,...{
    //填写覆盖接口中实现方法的函数
}
3.接口的继承 

        一个接口可以继承多个接口,但无法实现接口,也无法继承类。

public interface 接口 extends 接口1,接口2,...{//使用extends继承,若使用implements则出错
    public static final 类型 常量名 = 值;
    public abstract 返回类型 接口方法名(形参表);
    ...
}

4.接口的优点

        I、可以使项目分离,所有层都面向接口开发,提高开发效率;

        II、接口使代码和代码之间的耦合度降低,变得可插拔,可以随意切换;

        III、接口和抽象类都能完成某个功能,优先选择接口。接口可以多实现,多继承,并且一个类除了接口之外,还可以继承其它类。

以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值