接口和抽象类

来源:互联网 发布:tomcat和apache整合 编辑:程序博客网 时间:2024/05/18 02:05

接口与抽象类

如果一个类中含有抽象方法那么这个类就是抽象类 abstract 只能用来修饰方法和类

接口是指一个方法的集合 接口中所有方法都没有方法体,在语言接口是通过interface来实现的。
接口和抽象类异同:
1》都不能被实现
2》接口的实现类和抽象类的子类都只有实现了接口的方法和 抽象类中的方法才能 被实现
a》接口只有被定义其方法不能在接口实现‘而抽象类可以有定义与实现
b》接口被实现,抽象类被继承
c》接口用于是实现比较常见的功能,抽象类更倾向于充当公共类

首先接口:

package com.www.testAbstract;public interface D {// 接口中的成员变量默认为public static final,静态的不能被修改的,且必须赋初值public String name = "bird";// 所有的 成员方法都是public abstract,只有定义,没有实现public void fly();public int egg();}package com.www.testAbstract;public class C implements D {public String name = "a";@Overridepublic void fly() {System.out.println("bird can fly");}@Overridepublic int egg() {if (name == "bird") {return 2;} else if (name == "a") {return 4;}return 0;}public static void main(String[] args) {D test = new C();System.out.println(test.egg()); //输出为4test.fly();//输出bird can fly}}package com.www.testAbstract;public abstract class A {String name = "aaa";int age;public void a() {System.out.print("aa" + name);}public void b() {System.out.print("bb");}public abstract void c();}package com.www.testAbstract;public class B extends A {String name = "bbb";@Overridepublic void c() {System.out.println("cccccc");}@Overridepublic void a() {System.out.println("aaaaaaa" + " " + "name" + " " + name);}@Overridepublic void b() {System.out.println("bbbbbbb");}public static void main(String[] args) {A test = new B();test.a();// aaaaaaa name bbbtest.b();// bbbbbbbtest.c();// cccccc}}

0 0