抽象类
在java 语言继承层次结构中, 位于上层的类更具有通用性,甚至更加抽象 ,这些类封装的方法被重写的可能更大. java 用关键字
abstract
格式为:
[访问控制符] abstract class 类名 {
类体 ;
}
比如 :
public abstract class Myclass{...}
说明 :
- 抽象类只能被当做父类, 用来被继承,不能用 new 来创建和实例化对象;
- 在抽象类中定义成员方法时 , 可以在方法名字前面加 abstract 来修饰方法 ,这个方法被称为 抽象方法 . 而且声明放在类中而方法的定义则放在子类中去实现 ;
- 在抽象类中也可以定义非抽象方法 .
实例 :
public class Test3_19 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// MyAbstractClass amc = new MyAbstractClass () : 错误, 抽象类不能实例化对象
SubAbstractClass sac = new SubAbstractClass() ;
int sum = sac.sum(40, 50) ;
int sub = sac.sub(40, 50) ;
System.out.println("sum : " +sum );
System.out.println("sub : "+sub);
}
}
// 抽象类
public abstract class MyAbstractClass {
// 定义了抽象方法,抽象方法只能定义方法头 , 定义在子类中实现
public abstract int sum(int aint , int bint); // 在类中声明了抽象方法
public abstract int plus(int aint ,int bint);
public int sub(int aint , int bint) { // 普通的成员方法
return aint - bint ;
}
public int divide(int aint ,int bint) {
return aint/bint;
}
}
package cn.com.site3;
public class SubAbstractClass extends MyAbstractClass{
// 对抽象方法进行方法体的实现
public int sum(int aint , int bint) {
return aint+bint ;
}
public int plus(int aint ,int bint) {
return 0;
}
// 对抽象类的实例方法进行重写, 对象根据参数的个数决定调用哪个方法
public int sub(int aint ,int bint ,int cint) {
return aint - bint - cint ;
}
// 对抽象类的实例方法进行重写, 子类对象隐藏了父类中的同名方法
public int divide(int aint , int bint ) {
return aint/bint/10 ;
}
}
输出 :
sum : 90
sub : -10
标签:aint,JAVA,int,bint,抽象类,方法,public From: https://blog.51cto.com/u_15970235/6063950