Java基础篇--浅谈抽象

简单谈一下抽象的概念和一些自己的理解
抽象:(abstract) 某些功能不需要自己实现,而是交给子类实现,那么就可以设计这个方法为抽象方法

  1. 抽象方法: 没有方法体,用abstract修饰
  2. 抽象方法必须定义在抽象类中
  3. 抽象类 : 在类标识前用abstract修饰
  4. 抽象类中可以有正常方法,和抽象方法,且不是必须有抽象方法.(啥都行) //构造方法: 创建对象
    public Animal() {
    }
    //抽象方法
    public abstract void move() ;//删除大括号(方法体),填上分号和abstract.
    //正常方法
    public void test(){
    }
  5. 抽象类中可以有构造方法,但是不能创建对象 有什么意义? (!!! 抽象类的意义是让子类来继承)
  6. 抽象类的意义是让子类来继承(!!! 抽象方法的目的是被重写,抽象方法必须重写,正常方法可选)
  7. 属性不能用abstract修饰://abstract int aaa;//属性不能用abstract修饰
  8. abstract不能与final连用(final关键字修饰类使得类不能被继承(方法不能被重写),与abstract目的冲突)
  9. 抽象类是类(只不过比较抽象,没有方法体,没法实现)

子类(Dog): 子类继承抽象类

  1. 子类继承抽象类,就必须实现其所有的抽象方法(重写方法:(子类继承父类大多需重写)先extends继承父类, 再输入方法(move),alt+/,选取Override,可以在方法内写内容)
  2. 子类继承抽象类,不实现或者没有全部实现抽象方法,那么该子类必须声明为抽象类
  3. 抽象类可以继承抽象类 (Dog继承Animal)
    注: 顶层类是最基础的功能,只是定义这个方法的样子,越被继承,其子类功能也越来越强大

测试abstract:

public class test_abstract {
	public static void main(String[] args) {
		//不能创建抽象类对象
//		Animal a = new  Animal;(报错:Cannot instantiate the type Animal:无法实例化类型Animal)
		//多态
		Animal a = new Cat();
		a.move();
	 注解: Animal类修饰一个变量a,a属于Animal类型, a被它的子类Cat赋值.  
		 a.move();//编译看父类,运行看子类   
		  编译看父类,若父类没有这个方法也会报错,运行看子类  
	}
       //Animal类无法创建对象,但是可以通过子类来创建对象,是子类的对象,用Animal类修饰
	public  static  void test(Animal a) {
	
	}
}

本人很菜,如有错误敬请指出。大家多多交流,大神们多多指点。祝大家生活愉快。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值