abstract class和interface的区别
来源:互联网 发布:柜子设计软件手机 编辑:程序博客网 时间:2024/05/20 13:38
一,abstract关键字
abstract可以修饰类或方法
public abstract class demo { public abstract void MyMethod(); }
要点:
1,含有abstract方法的类一定是抽象类(abstract修饰),但抽象类并不一定有abstract方法;
2,如果 abstract 类的子类没有实现其超类的所有 abstract 方法,该子类也是 abstract 类;
3,abstract class类中定义抽象方法必须在具体(Concrete)子类中实现;
4,不能有抽象构造方法或抽象静态方法。
所以,
二,接口
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。
1,接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final;
2,抽象类中只包含常量和方法的定义,而没有变量和方法的实现
4,不能有抽象构造方法或抽象静态方法。
public abstract class demo {public abstract void myMethod1();public abstract void myMethod2();public void myMethod3(){System.out.println("可以不是抽象方法");};//abstract demo(){}//static abstract void myMethod();}//这里的abstract去掉会报错abstract class son1 extends demo{public void myMethod1(){System.out.println("实现方法MyMethod1()");}}//abstract class类中定义抽象方法全部实现class son2 extends demo{public void myMethod1(){System.out.println("实现方法MyMethod1()");}public void myMethod2(){System.out.println("实现方法MyMethod2()");}}
所以,
abstract 关键字不能应用于 static、private 或 final 方法,因为这些方法不能被重写,因此,不能在子类中实现。
final 类的方法都不能是 abstract,因为 final 类不能有子类。
二,接口
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。
1,接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final;
2,抽象类中只包含常量和方法的定义,而没有变量和方法的实现
interface interfaceDemo {//默认public static final 类型int id=0;public static final String name="";//默认public abstract类型void method1();public abstract void method2();}class son implements interfaceDemo{public void method1() {}public void method2() {}}
0 0
- abstract class和interface的区别
- abstract class和interface的区别
- Interface和Abstract Class的区别
- Interface 和 Abstract Class 的区别
- abstract class和interface的区别
- abstract class和interface的区别
- Interface 和 Abstract Class 的区别
- abstract class和 interface的区别
- abstract class 和 interface的区别
- 转帖-abstract class和interface的区别
- abstract class和interface的区别
- abstract class和interface的区别
- abstract class和interface的区别
- abstract class和interface的区别
- abstract class和interface的区别
- abstract class和interface的区别
- abstract class和interface的区别
- abstract class和interface的区别
- Bean named 'transactionAdvice' must be of type [org.aopalliance.aop.Advice], but was actually of typ
- bmon:Linux 下一个强大的网络带宽监视和调试工具
- 前端工程师之HTML基础知识1
- Java中的Listener监听器
- poj 2029 树状数组
- abstract class和interface的区别
- 免费馅饼(注释加解析)
- MySQL多表操作
- [杂题] Codeforces 627F 8VC Venture Cup 2016
- oracle5
- 欢迎使用CSDN-markdown编辑器
- 关键字: 抽象类与接口的区别
- 面试题总结(一)
- 原子操作