抽象类和接口:
接口是由抽象方法和属性构成且默认为抽象,公有。
属性为常量,格式static final 属性名=要赋的值。
方法: 格式 public 返回类型 方法名();
接口由于含有抽象方法,是不能实例化对象的。他的作用就是用来让普通类实现,或者由于要实现某类功能而选择性被抽象类引用。
接口例子:(1)
public interface Student{
public static final String name=" ";
void getName();
void setName();
void study();
}
抽象类:介于普通类与接口之间的类。
他可以包含普通方法和抽象方法。是一类特殊的类。
抽象类中的抽象方法不是默认存在的,所以必须显式地写出关键字abstract
如:(2)public abstract class Man{ //加上关键字abstract
public String name;
public abstract void eat();//抽象方法
public void setName(String n){//普通方法
name=n;
}
}
抽象类同样是不可以被实例化的。同样,若要将一个类避免生成对象,可以将其声明为抽象类。
关于抽象类和接口的继承关系:
接口可以被接口继承(extends),也可以被抽象类和普通类引用(implements);
抽象类可以被继承(extends)。抽象类引用接口通常是为了充当接口和普通类的桥梁。
因为普通类引用接口时,要将接口内的所有抽象方法都重写为普通方法(因为要实例化对象)。所以有时接口内抽象方法很多,接口引用很多(类只能有一个父类,但是可以引用多个接口)。就会导致代码过多、不需要的方法也被重写。故抽象类将接口中的抽象方法重写为普通方法后,普通类就可以继承抽象类,以此只要将自己所需要的方法重写即可。
如下例:
//定义一个人的接口Man
public interface Man{
public static final String name="张三";//常量,static final,需赋值
public void setName(String n);//抽象方法,无方法体
public String getName();
}
//定义一个带性别的人的接口Sman,继承自Man。
public interface Sman extends Man{
//定义特有的方法和属性sex和getSex();
public static void String sex="male";
public String getSex();
}
//定义一个学生类Student,引入自Sman
public abstract class Student implements Sman{
public String school;
//重写Sman中的抽象方法,加入了自己的抽象方法
public String getSex(){
return sex;
}
public abstract String getSchool();
public void setSchool(String s){
school=s;
}
}
//定义一个普通类UnStudent,继承了Student.将Student中的抽象方法重写
public class UnStudent extends Student{
public String getSchool(){
return school;
}
}
分享到:
相关推荐
抽象类和接口的区别 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持...
本项目主要包括项目开发环境搭建、不同功能的类的设计、抽象类的设计、接口的设计、及其继承抽象类重写和接口实现类等具体功能的实现。 ●工程项目搭建与游戏初始化功能实现(2学时) ; ●动物城成员列表与动物信息...
抽象类和接口实验报告
Java中的类、抽象类和接口的区别和联系
此书对于你学习Java抽象类和接口有非常大的帮助
抽象类和接口 区别分析抽象类和接口 区别分析
在Java中,可以通过两种形式来体现OOP(Object Oriented Programming,OOP,面向对象程序设计)的抽象:接口和抽象类。 这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换...
简单介绍了抽象类和接口
在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...
c# 中抽象类和接口的学习
Java源代码:抽象类和接口 Java源代码:抽象类和接口
C#中抽象类和接口的区别.txt
Java实验7抽象类和接口.pdf
学习java的抽象类和接口,入门抽象类和接口必须学会这些内容
抽象类的基本概念 抽象类是Java中一种特殊的类,它不能被实例化,只能被继承。...抽象类和接口都是用于定义通用属性和方法的,但抽象类可以有构造方法,接口不能有。抽象类只能单继承,接口可以实现多继承。
Java抽象类和接口和继承之间关系 Java抽象类和接口和继承之间关系
面向对象和抽象类和接口的理解 面向对象和抽象类和接口的理解 面向对象和抽象类和接口的理解