抽象类和接口及final关键字

final关键字:

1.final可以修饰类、成员(属性和行为),局部变量

2.final修饰的类不可以被继承

3.final修饰的方法不可以被复写

4.final修饰的变量是一个常量,只能赋值一次

5.内部类在局部时,只能访问被final修饰的局部变量

 

抽象类:

将方法声明向上抽取,该方法没有主体,需要被abstract关键字修饰。

抽象方法一定要存在抽象类中。

特点:

1.抽象类不可以用new关键字实例化。

2.抽象类需要被子类复写所有的抽象方法后,该子类才可以被实例化,否则该子类还是抽象类。

注意:

1.抽象类中有构造函数,用于给子类进行初始化的。

2.抽象类中可以没有抽象方法,那么该类存在的目的就是不让其实例化。

3.抽象类和一般类的定义描述是一样的;不一样的是抽象类中可以存放抽象方法;还有不可以被实例化。

 

示例:

abstract class Demo{

void show1(){}

abstract void show2();

}

 

abstract关键字 不能和哪些关键字共存:

1.final

2.static

3.private

 

接口:

特点:

1.接口用于功能的扩展。

2.接口其实就是对外暴露的规则。

3.接口的出现降低了耦合性。

好处:

1.接口的出现,保留了多继承机制,用多实现来表示。

2.接口可以继承多个接口。

3.一个类在继承一个类的同时,可以实现多个接口。

代码规则:

使用interface关键字定义。编译后生成的.class文件。

接口中通常的成员:常量、抽象方法。

这些成员都有固定的修饰符。

常量:public static final.

方法:public abstract .

注意:

1.复写接口中的方法是,一定要用public修饰。

2.一个类必须实现接口中所有的方法后,才可以被实例化,否则该类还是一个抽象类。

 

接口定义示例:

interface AbsDemo{

public static final int X=3;

public abstract void show1();

public abstract void show2();

}

 

类实现接口示例:

class SubDemo implements AbsDemo{

public void show1(){}

public void show2(){}

}

 

抽象类和接口的不同:

抽象类可以定义体系,接口用于扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值