学习笔记——抽象类的定义和使用说明

抽象类基本概念

类继承的主要作用在于在父类功能基础上进行功能扩充,但是对于之前继承操作会发现子类有权决定是否要对父类某一个方法进行覆写。这个时候父类无法对子类做出强制性要求,这个情况下往往不采用完整类的继承,而是必须继承抽象类。
抽象类基本定义:
抽象类主要作用对于对子类中覆写方法进行约定。抽象方法是使用了abstract关键字定义并且没有提供方法体的方法,而抽象方法所在的类必须为抽象类,抽象类必须用abstract关键字修饰
如果使用抽象类,按照如下要求:

·抽象类必须供有子类,子类使用extends继承一个抽象类;
·抽象类的子类(非抽象类)一定要覆写抽象类中的全部抽象方法;
·抽象类的对象实例化可以利用对象多态性通过子类实例化完成;

例子:

abstract class Person{ //抽象类
private String name;
public abstract String getInfo();//抽象方法
public Person(String name){
this.name=name;
 }
 public void setName(String name){
	 this.name=name;
 }
 public String getName(){
	 return this.name;
 }
}
class Student extends Person{//继承抽象类
public Student(String name){
super(name);
 }
public String getInfo(){//抽象方法覆写
return "我是大学生";
  }
}
public class App2 {
public static void main(String[] args){
Person a=new Student("叶蓝");
a.setName("张三丰");
System.out.println(a.getName());//张三丰
System.out.println(a.getInfo());//我是大学生
  }
}

抽象类只是比传统类增加了抽象方法以及继承过程中低于子类的强制方法覆写,其余完全相同。对于抽象类宜注意以下几点:
·抽象类无法自己直接实例化;
·抽象类主要目的是进行过度操作使用;


抽象类的相关说明

抽象类使用注意以下几点:
1·抽象类不能使用final关键字定义;
2·抽象类是普通类的加强版,只是增加了抽象方法。普通类之中可以定义属性和方法,那么这些属性一定是要求实例化的。抽象类中可以提供构造方法,并且子类也一定会按照子类对象的实例化原则进行构造调用。
3·抽象类允许没有抽象方法,但是即使没有抽象方法,也无法使用关键字new直接实例化抽象对象。即便抽象类没有实例化对象,那么也无法直接使用关键字new获取抽象类的对象,必须依靠子类对象完成;

例子:

abstract class Person{} //抽象类
class Student extends Person{}//继承
public class App2 {
public static void main(String[] args){
Person a=new Student();//向上转型
  }
}

4·抽象类中可以提供static方法,并且该方法不受到抽象类对象的局限:

abstract class Person{ //抽象类
public abstract String getInfo();//抽象方法
public static Person get(){
return new Student();
  }
}
class Student extends Person{//继承
public String getInfo(){ //覆写抽象方法
return "我是大学生";
  }
}
public class App2 {
public static void main(String[] args){
Student a=new Student( );
System.out.println(a.getInfo());//我是大学生
  }
}

static方法永远不会受到实例化对象限制

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值