java 的 抽象类、接口
2021-06-22 11:05
标签:ace 抽象 关键字 static vat com 包括 use 修饰符 1、抽象类: 建立测试类 效果如下: 2、接口:(接口是功能的集合 可以看做是一种 数据类型) 建立测试类: 效果如下: 三、接口和抽象类的区别: 1.抽象类中可以有普通成员变量,接口中没有普通成员变量 四、应用: java 的 抽象类、接口 标签:ace 抽象 关键字 static vat com 包括 use 修饰符 原文地址:https://www.cnblogs.com/scw123/p/9678826.html
抽象类定义 abstract:[public abstract class clas_name{ }(抽象类)]
抽象方法 abstract :[public abstract void/返回值类型 name();(抽象方法)注:没有方法体]
方法体: 方法{ 方法体 } 方法里面的内容就是方法体 (包括{ })
抽象类不能创建对象,因为没有意义
如果一个普通类继承了抽象类,就必须重写里面的所有抽象方法
有抽象方法的类一定是一个抽象类(一个抽象类不一定有抽象方法)
抽象类可以定义普通方法,但是该方法只能是继承本类的普通类去调用
abstract 不能和 private(矛盾) 、final(常量) 、 static 一起用package com.oracle.dome01;
//抽象类定义 abstract
//抽象类不能创建对象,因为没有意义
//如果一个普通类继承了抽象类,就必须重写里面的所有抽象方法
//有抽象方法的类一定是一个抽象类
//抽象类可以定义普通方法,但是该方法只能是继承本类的普通类去调用
public abstract class developer {
//抽象方法(没有方法体)
public abstract void work();
}
package com.oracle.dome01;
public class andriod extends developer{
public void work(){
System.out.println("写安卓代码");
}
}
package com.oracle.dome01;
public class javaEE extends developer{
public void work(){
System.out.println("写javaEE代码");
}
public void work(int[] list){
}
public void work(double[] list){
}
}
package com.oracle.dome01;
public class test {
public static void main(String[] args) {
javaEE j = new javaEE();
j.work();
andriod a = new andriod();
a.work();
}
}
(1)定义:接口定义时需要使用interface关键字[编译后仍然会产生.class文件]
(2)类实现接口:implement
(3)接口的多实现:解决多弊端的弊端
(4)类继承类同时实现接口 [接口中定义的事物的扩展功能,父类中定义的事物的基本功能]
(5)接口的多继承
(6)接口的思想 : 好处
1、接口的出现扩展了功能。
2、接口其实就是暴漏出来的规则。
3、接口的出现降低了耦合性,即设备与设备之间实现了解耦。package com.oracle.dome02;
//比抽象类更抽象的类:接口
//接口只能写抽象方法
//接口中定义的变量有固定修饰符 : public static final
//static : 可以直接用类名.成员
// final : 常量
public interface Usb {
int a = 1 ;
public abstract void open();
}
package com.oracle.dome02;
//实现类:实现接口
public class mouse implements Usb{
public void open(){
System.out.println("打开链接");
}
}
package com.oracle.dome02;
public class test {
public static void main(String[] args) {
mouse m = new mouse();
m.open();
}
}
2.抽象类可以有构造方法,接口中不能有构造方法
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中可以包含静态方法,接口中不能包含静态方法
5. 抽象类中的抽象方法的访问类型可以是 public,protected ,
但接口中的抽象方法只能是 public 类型的,并且默认即为 public abstract 类型
6. 一个类可以实现多个接口,但只能继承一个抽象类。
7. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,
但接口中定义的变量只是public static final 类型,并且默认即为 public static final 类型。----------------------------------------------------------
抽象类:犬
public abstract class 犬{
public abstract void 能吃();
public abstract void 能叫();
}
-----------------------------------------------------------
接口:缉毒功能
public interface 缉毒{
public abstract void 缉毒();
}
-------------------------------------------------------
具体事物:缉毒犬
public class 缉毒犬 extends 犬 implements 缉毒{
public void 能叫(){};
public void 能吃(){};
puclic void 缉毒(){};
}
--------------------------------------------------------
建立测试类 :
public class test{
public static void main(String[] args){
缉毒犬 缉毒犬一号 = new 缉毒犬();
缉毒犬一号.能吃();
缉毒犬一号.能叫();
缉毒犬一号.缉毒();
}
}
上一篇:Java内部类详解