美文网首页
抽象类和接口

抽象类和接口

作者: phoebe_gyq | 来源:发表于2017-07-05 10:07 被阅读0次

1.接口是公开的,里面不能有私有的方法或者变量,是用于让别人使用的,而抽象类是可以有私有的方法或者私有变量的。
2.实现接口的一定要实现接口里面定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般应用里最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。
3.接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用。
4.抽象类中可以有非抽象方法(实现了的方法包括构造函数),接口方法都是抽象方法。abstract
5.抽象类可以继承接口,而接口不能继承抽象类。
因为Java只允许单继承,所以抽象类作为类型定义受到了极大的限制,但是一个类可以实现多个接口。
6.含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
7.抽象类不能被实例化。

例子:

抽象方法只需声明,而不需实现某些功能。如:
public abstract void enjoy();
上面的这个抽象方法不需要实现功能,而一般的方法 :
public void enjoy() {
System.out.print("叫声"); //有必要实现某些功能
}

例子 :多态程序,没抽象类的
class Person {
public void f() {
System.out.println("父类");
}
}

class Students extends Person {
public void f() {
System.out.println("学生类");
}
}
class Teacher extends Person {
public void f() {
System.out.println("教师类");
}
}
public class Test3 {
public static void main(String[] args) {
Person s = new Students();
Person t = new Teacher();
s.f();
t.f();
}
}

抽象类的多态程序:
abstract class Person {
public abstract void f();
}

class Students extends Person {
public void f() {
System.out.println("学生类");
}
}
class Teacher extends Person {
public void f() {
System.out.println("教师类");
}
}
public class Test3 {
public static void main(String[] args) {
Person s = new Students();
Person t = new Teacher();
s.f();
t.f();
}
}

什么时候使用抽象类和接口

如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧。
如果你想实现多重继承,那么你必须使用接口。由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它。
如果基本功能在不断改变,那么就需要使用抽象类。如果不断改变基本功能并且使用接口,那么就需要改变所有实现了该接口的类。

//报错原因:抽象类不能进行实例化操作
//Animal Tiger = new Animal();

    //只能用子类进行实例化

相关文章

  • 5.5-全栈Java笔记:接口的定义和使用

    接口interface 接口的作用 为什么需要接口?接口和抽象类的区别? 接口就是比“抽象类”还“抽象”的“抽象类...

  • java的final关键字

    ——修饰类、接口和抽象类 final可以修饰方法,属性,类!但是不能修饰接口,抽象类;因为 接口和抽象类本身就是...

  • 接口和抽象类的区别

    接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类...

  • 抽象类和接口的区别

    以下两篇文章介绍了接口和抽象类的概念接口概念抽象类概念 抽象类和接口的区别: 抽象类:需要使用abstract关键...

  • 接口和抽象类

    接口和抽象类的区别? 接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制...

  • Android_开发_Day12_抽象类和接口

    Android_开发Day12抽象类和接口 目的: 知道什么是抽象类,什么是接口,学会抽象类的使用,与接口的使用。...

  • Java--接口和抽象类

    ·为什么需要接口?接口和抽象类的区别?  接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束...

  • Kotlin 零基础学习 接口和抽象类

    接口:接口就是暴露一种物体与另外一种物体沟通的方法 抽象类 接口 这么看接口和抽象类没什么区别,抽象类能干的接口也...

  • 接口,抽象类,工厂设计模式,代理模式

    一、接口的结构: 抽象方法 全局常量 最终写法: 其他内部结构内部类内部抽象类内部接口 二、接口和抽象类 抽象类可...

  • 接口跟抽象类的对比

    抽象类和接口的区别抽象类被子类继承 接口被类实现接口可以做方法生命 抽象类可以做方法生命 也可以做方法实现接口中定...

网友评论

      本文标题:抽象类和接口

      本文链接:https://www.haomeiwen.com/subject/zyifhxtx.html