您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第6章:面向对象(高级)】_接口的基本概念
发布时间:2020-12-16 18:39:04编辑:雪饮阅读()
接口用interface声明
其实就是一个类,但是用interface取代了class
public修饰的static的final属性叫做全局常量,关键在于public、static、final这三个关键字
interface声明的“类”中所有方法都是抽象方法。
interface A{
public static final String name="snowDrink";
public int age=24;
abstract public String getName();
abstract public int getAge();
abstract public String getInfo();
}
public class Hello{
public static void main(String args[]){}
}
D:\>javac Hello.java
D:\>java Hello
接口中属性和方法的访问权限都强制为public、常量也强制是全局常量,方法也强制是abstract抽象方法,所以接口可以简写。
interface A{
final String name="snowDrink";
int age=24;
String getName();
int getAge();
String getInfo();
}
public class Hello{
public static void main(String args[]){}
}
D:\>javac Hello.java
D:\>java Hello
接口也和抽象类一样必须被“继承”(实现)后才可以使用,实现要用implements关键字。
interface A{
final String name="snowDrink";
int age=24;
String getName();
int getAge();
String getInfo();
}
class B implements A{
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public String getInfo(){
return "姓名:"+this.name+" 年龄:"+this.age;
}
}
public class Hello{
public static void main(String args[]){
System.out.println(new B().getInfo());
}
}
D:\>javac Hello.java
D:\>java Hello
姓名:snowDrink 年龄:24
类不能多继承,但接口可以多实现
interface A{
final String name="snowDrink";
int age=24;
String getName();
int getAge();
String getInfo();
}
interface B{
void print();
}
class C implements A,B{
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public String getInfo(){
return "姓名:"+this.name+" 年龄:"+this.age;
}
public void print(){
System.out.println("实现B接口的print方法");
}
}
public class Hello{
public static void main(String args[]){
System.out.println(new C().getInfo());
new C().print();
}
}
D:\>javac Hello.java
D:\>java Hello
姓名:snowDrink 年龄:24
实现B接口的print方法
一个类可以既继承抽象类同时又实现接口
abstract class A{
final String name="snowDrink";
int age=24;
abstract String getName();
abstract int getAge();
abstract String getInfo();
public void say(){
System.out.println("say什么呢?");
}
}
interface B{
void print();
}
class C extends A implements B{
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public String getInfo(){
return "姓名:"+this.name+" 年龄:"+this.age;
}
public void print(){
System.out.println("实现B接口的print方法");
}
}
public class Hello{
public static void main(String args[]){
System.out.println(new C().getInfo());
new C().print();
new C().say();
}
}
D:\>javac Hello.java
D:\>java Hello
姓名:snowDrink 年龄:24
实现B接口的print方法
say什么呢?
抽象类可以实现接口,则抽象类要被实现则其子类要实现接口的所有抽象方法和抽象类的所有抽象方法。
interface A{
void print();
}
abstract class B implements A{
final String name="snowDrink";
int age=24;
abstract String getName();
abstract int getAge();
abstract String getInfo();
public void say(){
System.out.println("say什么呢?");
}
}
class C extends B{
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public String getInfo(){
return "姓名:"+this.name+" 年龄:"+this.age;
}
public void print(){
System.out.println("实现B接口的print方法");
}
}
public class Hello{
public static void main(String args[]){
System.out.println(new C().getInfo());
new C().print();
new C().say();
}
}
D:\>javac Hello.java
D:\>java Hello
姓名:snowDrink 年龄:24
实现B接口的print方法
say什么呢?
接口也支持多继承,继承多个父接口
interface A{
void print();
}
interface B{
final String name="snowDrink";
int age=24;
String getName();
int getAge();
String getInfo();
}
interface C extends A,B{
String getData();
}
class D implements C{
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public String getInfo(){
return "姓名:"+this.name+" 年龄:"+this.age;
}
public void print(){
System.out.println("实现B接口的print方法");
}
public String getData(){
return "data";
}
}
public class Hello{
public static void main(String args[]){
System.out.println(new D().getInfo());
new D().print();
System.out.println(new D().getData());
}
}
关键字词:java,面向对象,接口