抽象类、接口和final

抽象类

为什么有抽象类??当父类的方法不确定时,就可以声明一个抽象方法。
在Java中,只声明了但是没有主体的方法称之为抽象方法,用abstract修饰。例如:abstract void dameinv(int a);
用abstract修饰的类就称之为抽象类
抽象类的特点:1、含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被实现。
2、抽象类中不是所有的方法都必须是抽象方法,但是有abstract方法的类一定是抽象类。
3、抽象类不能有主体。
4、抽象类的子类必须实现了父类的所有抽象方法之后才能实例化(抽象类不能实例化),否则子类也成为了一个抽象类。

接口

接口就是给出一些抽象方法,封装到一起,当某个类要使用的时候,再根据具体情况把这些方法写出来。(接口就是更加抽象的抽象类。抽象类里的方法可以有内容,而接口内的所有方法都没有内容【即接口内的所有方法都是抽象方法】)
定义格式:[public]interface<接口名>{常量或者抽象方法的集合}
注:public interface aa{ public void jiekou();//这就等价于 public abstract void jiekou();}

接口的特点:1、接口中的常量默认为public static final,并且也只能是public static final。(在Java的开发中,可以把常用的变量定义在接口中,作为全局变量使用。访问形式:接口名.变量名。)
2、接口中只能定义抽象方法,而且这些方法默认为public abstract,且只能是public abstract。
3、接口不能继承其它的类,但是接口可以继承其它的接口,并且可以添加新的属性和方法。
4、接口不能被实例化。
5、一个类可以实现多个接口。

final

final的用法:1、final修饰的类不能被继承,没有子类。
2、final修饰的方法不能被子类的方法重写或隐藏。
3、final修饰的变量表示常量,只能被赋值一次。
注:在父类中用private修饰的方法不能被子类的方法重写,因此private类型的方法默认是final类型的。

【注意】:在Java中Java.lang.String类是final类,他不能被继承,主要是为了效率安全性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值