0
点赞
收藏
分享

微信扫一扫

JAVA 抽象类


抽象类

  在java 语言继承层次结构中, 位于上层的类更具有通用性,甚至更加抽象 ,这些类封装的方法被重写的可能更大. java 用关键字

   abstract 

格式为: 

[访问控制符] abstract class 类名 { 

    类体 ; 

}

比如 : 

public abstract class Myclass{...}

 说明 : 

  1.  抽象类只能被当做父类, 用来被继承,不能用 new 来创建和实例化对象;  
  2. 在抽象类中定义成员方法时 , 可以在方法名字前面加 abstract 来修饰方法 ,这个方法被称为 抽象方法 . 而且声明放在类中而方法的定义则放在子类中去实现 ; 
  3. 在抽象类中也可以定义非抽象方法 . 

实例 :

 

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

 

举报

相关推荐

0 条评论