IT评测·应用市场-qidao123.com
标题:
java笔记(6) 抽象类和接口
[打印本页]
作者:
小小小幸运
时间:
2023-4-4 15:01
标题:
java笔记(6) 抽象类和接口
abstract
由abstract关键字修饰的类称为抽象类,可以将某些类共有的行为抽象出来,形成约束,提高开发效率。
//抽象类
public abstract class Action{
//抽象方法,只有方法名字,没有方法的实现
public abstract void doSth();
}
复制代码
抽象类不可以通过new关键字创建实例
抽象类中可以有普通方法
抽象方法必须在抽象类中
抽象类可以有构造方法,但只在子类创建实例时调用
interface
使用interface
创建
的类称为接口。
在普通类中只有具体实现;抽象类中,具体实现和规范(抽象方法)都有;而在接口中只有规范,没有具体实现,将约束和实现分离。
接口中定义的属性默认都被final修饰的静态属性,且访问限制为public
接口中定义的方法默认是抽象的,且访问限制为public
interface UserService{
//public 和 final static是多余的
public final static int num = 1001;
//public 和 abstract是多余的,在interface中,不需要额外声明访问限制和抽象类,默认都是public和abtract
public abstract void run(String name);
interface TimerService{
void add(int t);
//这不是普通的方法,这实际上是为该方法定义了默认行为,该方法可以被正常重写,访问限制也默认是public。
//实现该接口的类可以选择不重写该方法,可以直接调用
default void saySth(Stirng words){
System.out.println("Saying "+words);
}
}
复制代码
接口需要有实现类,一个类想要实现一个接口,需要通过implement关键字。一旦实现了某个接口,就必须实现接口中的方法。一个类可以同时实现多个接口。
class UserServiceImpl implements UserService,TimerSerice{
//UserServiceImpl类实现了两个接口,就必须同时实现这两个接口中的方法
public void run(String name){
System.out.println(name);
}
public void run(int t){
//该方法没有被实现,但可以直接调用
saySth("Hello");
System.out.println(t);
}
}
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4