关于面试中abstract 和 interface 的区别
来源:互联网 发布:mac用移动硬盘装win7 编辑:程序博客网 时间:2024/06/05 11:28
这个在网上找了一些文章看了。说的好多,就决定自己用代码去实验一番。
protected String aa = "可以有自己的属性变量";//报错,其实我只能是 public static final
String bb(){
System.out.println("不能带有自己的成员方法");//报错
}
public Demo1(){//报错
System.out.println("没有自己的构造方法");
}
abstract void cc();//带上抽象方法
}
总结:1、接口可以带自己的变量和方法,变量必须是public static final(不写也可以,是默认的),方法只能是抽象的。
2、接口不能建构造方法。
==============================================================================================================
public abstract class Demo2 {
protected String aa ="抽象类可以有自己的属性变量";//默认:friendly
void bb() {
System.out.println("抽象类可以有自己的成员方法");
}
abstract void cc();//这个需要去实现。。。
}
===========================================
public abstract class Demo3 extends Demo2{
//虽然继承了抽象类Demo2,但是因为自己身上也有abstract标志,所以可以不去实现Demo2中的抽象方法。
public Demo3(){
//可以有构造方法。
}
abstract void dd();
}
===========================================
public class Demo4 extends Demo3 {
@Override
void dd() {
// 必须要去实现Demo3中的抽象方法
}
@Override
void cc() {
// 必须要去实现Demo2中的抽象方法
}
}
通过抽象类Demo3继承抽象类Demo2,再用Demo4去继承抽象的Demo3。
总结:1、抽象类可以有自己的变量和方法,无限制。变量为friendly类型。
2、可以有构造方法。
从代码层可以知道这两点。
剩下的是需要自己去记的。
1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。接口继承接口,不能实现接口。抽象类继承抽象类,能实现接口。
2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是public static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。
3.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。
4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。
5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。
6.抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。
7.接口中的方法默认都是 public,abstract 类型的。
- 关于面试中abstract 和 interface 的区别
- Java中abstract和interface的区别
- php中abstract和interface的区别
- Java中abstract和interface的区别
- Java中abstract和interface的区别
- Java中abstract和interface的区别
- JAVA 中abstract和interface的区别
- Java中abstract和interface的区别
- Java中abstract和interface的区别
- Java中abstract和interface的区别
- Java中abstract和interface的区别
- Java中abstract和interface的区别
- Java中abstract和interface的区别
- Java中abstract和interface的区别
- Java中abstract和interface的区别
- Java中abstract和interface的区别
- Java中abstract和interface的区别
- Java中abstract和interface的区别
- Runtime.getRuntime().totalMemory() 数值一直不断增加
- Scala开发Example
- Android控件开发之AnalogClock
- Android API 中文 —— ListView
- scala学习网址
- 关于面试中abstract 和 interface 的区别
- 基于 Android NDK 的学习之旅-----JNI 数据类型
- 为什么编程是独一无二的职业
- 利用WebClient进行数据抓取
- 虚拟机VMWare Workstation最新官方原版 有效VMware7.1.4序列号 密钥 VMware7.1.4破解版破解方法 VMware7.1
- Before the Getting Started Guide
- 单链表逆转(含头结点)
- Andoid自动判断输入是电话,网址或者Email的方法----Linkify的应用!
- 20.中介模式--Mediator