目录
一、抽象类
二、接口
一、抽象类张三的xyk和李四的xyk抽象成一个xyk,而这个xyk是个类,将这个类在进行抽象,即将xyk和储蓄yhk在进行抽象,可以抽象成银行账户,而这个银行账户在此处相当于一个抽象类,将上面的这个例子概括一下,给抽象类下个定义的话就是类和类在进行抽象就形成了抽象类。
- 语法格式:【修饰符列表】abstract class 类名{ }通过上面的例子可知,抽象类是对类的在抽象,而类本身是不存在的(类只有通过new 的方法创建出来的对象才是真实存在的),所以抽象类是无法创建对象的。
package com.java; public abstract class Student { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } public Student() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //下面讲解这个方法 public abstract void work(); }
package com.Java; public class TestMain { public static void main(String[] args) { Student s=new student(); //错误,因为是student类是抽象的,所以不能创建 } }
在上面的student中有个work方法,这个和平常写的方法是不一样的,没有方法体,类似这种类型的叫抽象方法,在抽象方法中,可以有抽象方法,也可以没有抽象方法,在上面有说过抽象类没办法实例化,也就是没办法创建Student对象,但如果我们想创建一个对象的话,怎么办呢?抽象类是不能被实例化的,要记好了抽象方法只能用来别继承,也就是创建这个类的子类,但是如果父类中有抽象方法的话,必须将父类中的抽象方法实现,也就是如下(创建Student类的子类,同时将父类中的work方法实现,如果student中没有抽象方法的话,也就不用将抽象方法实现)
package com.java; public class GoodStudent extends Student { public GoodStudent(String name, int age) { super(name, age); } public GoodStudent() { } @Override public void work() { System.out.println("这儿就是对抽象方法Student类中的抽象方法work进行实现!"); } }
同时可以在TestMain中写需要的方法,如下所示
package com.java; public class TestMain { public static void main(String[] args) { Student student =new GoodStudent("张三",15); System.out.println("我是"+student.getName()+",今年"+student.getAge()+"岁"); } }
二、接口
接口和抽象类是差不多的,如果说抽象类是半抽象的,那么接口就是全抽象的。(可以看下面的表格来理解),通过接下来抽象类和接口对比的方法来认识接口。
语法格式:【修饰符列表】interface 接口名{...}
package com.atguigu.sparsearray;java; public interface JiSuan { public static final double PI=3.14;//这个常量在这个方法中是没用的,只是展示以下如何在接口中写常量【public static final可省略】 public abstract int jisuan(int a,int b);//前面的abstract可省略不写 }
package com.java; public class Sum implements JiSuan { @Override public int jisuan(int a,int b) { int sum=a+b; return sum; } }
package com.java; public class TestMain { public static void main(String[] args) { Sum s=new Sum(); int sum=s.jisuan(10,2); System.out.println("sum="+sum); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)