抽象类

1.抽象方法和抽象类必须使用abstract修饰符修饰,有抽象方法的类只能被定义成抽象类(即方法修饰词为abstract时,类修饰词也必须为abstract),抽象类里可以没有抽象方法

抽象方法和抽象类的规则:

1)抽象类和抽象方法必须使用abstract修饰,抽象方法不能有方法体。       抽象方法的定义,在方法前增加abstract修饰,再去掉方法体,并在方法后面增加分号。

2)抽象类不能被实例化。

3)抽象类可以包含成员变量,方法(普通方法和抽象方法都可以),构造器,初始化块,内部类(接口、枚举)。抽象类的构造器不能创建该类实例,主要是为了让子类调用。

4)含有抽象方法的类(定义了一个抽象方法;或继承了一个抽象父类,但没有完全实现父类包含的抽象方法或实现了一个接口,但没有完全实现接口包含的抽象方法的三种情况)只能被定义为抽象类。

注:       public abstract  void info();--------是一个抽象方法;   public void info(){}---------------------是一个普通方法。

public abstract class Shape{   //定义一个抽象类
	private String color;
	public abstract int info();     //定义两个抽象方法
	public abstract String getType();   
	public Shape(String color){      //定义一个构造器,主要是为了给子类调用
		this.color = color;
	}
}

public class Triangle extends Shape{        //继承父类  由于声明是普通类,因次需要实现父类的全部抽象方法
	private int a;
	private int b;
	private int c;
	public Triangle(String color,int a,int b,int c){
		super(color);				//调用父类构造器
		this.setSides(a,b,c);       //调用了setSides方法
	}
	public void setSides(int a,int b,int c){
		if(a>=b+c||b>=a+c||c>=a+b){     //先判断是否为三角形,否则return
			return;
		}
		else{
			this.a = a;
			this.b = b;
			this.c = c;
		}
	}
	public int info(){        //使用父类的两个抽象方法
		return a+b+c;
	}
	public String getType(){
		return "三角形";
	}
	public static void main(String[] args){
		Triangle one = new Triangle("红色",3,4,5);
		System.out.println(one.info());
		System.out.println(one.getType());
	}
}
	

5.当使用abstract修饰类时,表明这个类只能被继承;当使用abstract修饰方法时,表明这个方法必须由子类提供实现(重写)。而final修饰的类不能被继承,final修饰的方法也不能被重写,因此abstract和final不能同时使用。


6.1)abstract不能修饰成员变量,也不能修饰局部变量,以及构造器;

2)abstract不能修饰类方法,即不能和static放在一起。

3)abstract修饰的方法必须由子类重写才有意义,因此abstract不能和private同时修饰。

7.父类中可能包含需要调用其它系列方法的方法,这些被调方法即可以由父类实现,也可以由子类实现。父类提供的方法只是定义了一个通用算法,其实现也许并不完全由自身实现,而必须依赖其子类的辅助

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值