Java——基础知识——抽象类与抽象方法接口
Posted UDK_KL.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java——基础知识——抽象类与抽象方法接口相关的知识,希望对你有一定的参考价值。
如有不妥之处欢迎指正
抽象方法
- 没有方法体的方法
- 抽象方法要求结尾必须加分号
- 修饰符必须带有abstract
- 必须在抽象类内,抽象类内不一定全是抽象方法
abstract class A
{
abstract public void f();
}
抽象类
- 不能实例化对象的类
- 利用抽象类可以更加方便地对类进行分类
- 抽象类通常是一个类组最顶层的父类
- 抽象类内可以有非抽象方法
abstract class A
{
abstract public void f(); //抽象方法
public void f2() //非抽象方法
{
}
int a;
}
接口(interface)
更加严格的抽象方法
接口要求
- 接口中的属性(成员变量)必须是public static final 的
- 接口中定义的方法必须是 public abstract
- 以上修饰符可以省略不写
- 接口中的属性不能被更改
- 一个类只能实现(implements)某个接口,不能继承接口
- 接口可以继承接口,且可以一次继承多个接口
- 一个类只实现了一个接口的部分方法,那么该类必须被声明为抽象类
- 一个类可以在继承某个父类的同时实现某个或多个接口,但是extends关键字必须在implements之前
- 不可以new接口(对接口实例化),但是可以定义一个接口引用类型的变量并将其指向实现接口的对象,以达到多态的目的
定义接口
interface It
{
int i=20;
abstract void f();
}
接口的实现和使用
interface It
{
int i=20;
abstract void f();
}
class A implements It //实现接口
{
public void f()
{
System.out.printf("%d\\n",i);
}
}
class B extends A implements It //先继承再实现
{
}
public class Main
{
public static void main(String [] args)
{
A a = new A();
a.f();
}
}
接口的继承
interface A
{
}
interface B extends A
{
}
interface C extends B //C接口此时拥有A和B接口的所有属性
{
}
interface D
{
}
class I implements B,D //I此时实现了ABCD接口
{
}
以上是关于Java——基础知识——抽象类与抽象方法接口的主要内容,如果未能解决你的问题,请参考以下文章