Java知识点梳理——抽象类和接口
2024-09-24 21:40:24
抽象类
1、定义:没有包含足够的信息来描绘一个具体对象的类,不能被实例化,必须被继承;
2、abstract关键字:abstract class定义抽象类,普通类的其它功能依然存在,如变量、方法等;
public abstract class Person{
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void sayHi(){
System.out.println("Hi");
}
public abstract void sayHello();
}
3、继承抽象类:一个类只能继承一个抽象类,可以实现多个接口;
4、抽象方法:抽象类中一种特别的方法,同样用abstract关键字声明,只包含方法名,没有方法体(上面的
sayHello方法),抽象方法没有具体实现由继承的子类(非抽象类)实现;
a、如果一个类包含抽象方法,那么该类必须是抽象类;
b、子类必须重写父类的抽象方法,或者声明自身为抽象类,最终必须有非抽象子类实现抽象方法;
接口
1、定义:抽象方法的集合,用interface关键字声明,无法被实例化,可以被实现(implements关键字实现接口);
public interface Person {
public void sayHello(); //隐式抽象方法,不必写abstract关键字
} public class Student implements Person {
@Override
public void sayHello()
{
System.out.println("Student sayHello"); //实现接口里的方法
}
}
2、特性
a、接口中的方法是隐式的抽象方法(public abstract);
b、接口中的变量隐式的指定为 public static final 变量;
c、接口中的方法不能在接口中实现,只能由实现接口的类来实现;
d、接口允许多继承,extends关键字只需使用一次,其后跟着继承接口;
public interface Person {
public void sayHello(); //隐式抽象方法,不必写abstract关键字
} public interface Children {
public void sayHi(); //隐式抽象方法,不必写abstract关键字
} public interface Student extends Children,Person Person {
//类的多继承是不合法,但接口允许多继承
}
抽象类与接口的区别
1、抽象类中的方法可以有方法体,接口没有;
2、抽象类中的成员变量可以是各种类型的,接口中只能是 public static finl 类型;
3、抽象类中可以含有静态代码块和静态方法,接口没有;
4、一个类只能继承一个抽象类,而一个类却可以实现多个接口;
最新文章
- Python目录
- Linux0.11内核--进程调度分析之2.调度
- UITableView的使用
- RecyclerView item 状态错乱
- IT职业思考 谈谈IT外包公司
- Burp Suite使用
- BZOJ 3672 [Noi2014]购票 (熟练剖分+凸壳维护)
- 分享我设计的iOS项目目录结构
- Codeforces Round #367 (Div. 2) A. Beru-taxi (水题)
- 支付宝APP支付(Java后台生成签名具体步骤)
- 你真的会玩SQL吗?透视转换
- 访问祖先类的虚方法(直接访问祖先类的VMT,但是这种方法在新版本中未必可靠)
- java抽象类和接口的区别(转载)
- Saltstack批量编译部署nginx(多模块)
- jQuery的入口函数四种写法
- 获取Android设备唯一标识码
- swift 学习- 21 -- 类型转换
- java linux ftp问题
- cpu怎么实现运算的
- centos限制用户使用部分命令
热门文章
- nutch中bin/crawl和bin/nutch crawl的用法(转)
- RS:推荐系统中的数据稀疏和冷启动问题
- Windows未能启动,原因可能是最近更改了硬件或软件,解决此问题的步骤
- R内存扩展 win7内存扩展
- Bash中的空格
- Atitit.  单列索引与多列索引 多个条件的查询原理与设计实现
- Atitit.index manager api design 索引管理api设计
- Android开发-状态栏着色原理和API版本号兼容处理
- sourceInsight设置
- layui的单选框