12.接口:implements

接口 :implements
创建文件 : new----- interface
public interface DemoInterface {
public void demo();
}
接口的声明的属性默认是 public static final ,也只能是 public static final .
接口中只能定义抽象的方法,而且这些方法默认是public的,也只能是public的
接口可以继承其他的接口,并添加新的属性和抽象方法
接口的特性:
1.接口不能被实例化(abstract抽象)
2.实现类必须实现接口的所有方法,否则实现类必须是抽象类


3.实现类可以实现多个接口,来弥补java不能多继承(不同接口之间用“,”逗号分隔)
4.接口中的变量都是静态常量
接口的实现类:
创建文件 new--class--interface--add--接口的文件(可以为多个)
接口是一种规范:
体现在接口名称和注释上
有些接口只有名称,方法的实现方式要通过注释来约定
面向接口编程:
程序设计时面向接口的约定而不需要考虑具体的实现






接口的优点:
1.可以被多继承
2.设计和实现完全分离
3.更自然的使用多态
4.更容易搭建程序框架
5.更容易更换实现
继承和接口的使用
拥有相同的属性和方法:继承
后期可以添加功能:接口
接口和抽象类的区别:


练习1:




补充:常量
常量是一种标识符,它的值在运行期间恒定不变
常量标识符在程序中只能被引用,而不能被重新赋值
常量的优点:(增加程序的可读性,可维护性)
如果不使用常量,程序的可读性变差:用户很难理解数字或字符串的意思
如果一个数值在多个地方被用到,当数值发生改变时,则需要在很多地方改动,既麻烦又容易出错

匿名类
定义:
匿名类是不能有名字的类,它们不能被引用,只能在创建时用New语句来声明它们。匿名类的声明是在编译时进行的,实例化在运行时进行,这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的实例。
作用:
匿名类的目的是在某个地方需要特殊的实现,因此在该处编写其实现,并获取它的实例,调用它的方法。不要在匿名内部类编写其他方法,是不可见的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.myapplication, PID: 9762 java.lang.RuntimeException: com.example.myapplication.MainActivity2@48c4f8e must implement OnFragmentInteractionListener at com.example.myapplication.BlankFragment.onAttach(BlankFragment.java:85) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1404) at androidx.fragment.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1195) at androidx.fragment.app.FragmentTransition.calculateFragments(FragmentTransition.java:1078) at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:117) at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2408) at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366) at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273) at androidx.fragment.app.FragmentManagerImpl$1.run(FragmentManager.java:733) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) Process 9762 terminated.这是代码运行抛出的错误,如何修改
最新发布
06-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值