3.4 面向对象编程高级 【重点!】 万字抽象类与接口笔记-跟着韩老师学JavaSE

本文详细介绍了Java中的抽象类与接口,包括抽象类的定义、特点和应用场景,以及接口的基本概念、使用细节和多态特性。通过实例解析了抽象类的模板设计模式和接口在解决特定问题时的优势,强调了接口在设计上的灵活性和在继承机制中的补充作用。
摘要由CSDN通过智能技术生成

大佬给推荐的韩顺平老师的课程 2021年刚刚录的船新版本!
【零基础 快速学Java】韩顺平 零基础30天学会Java
我整理的学习路线与各章节学习笔记戳这里
硬把从另一个讲师那里看了300多集的我拽过来 几十节课一下子爱上这个节奏了!安利!!

具有其他语言基础的盆友只需要把前几章的章节总结简单看一下 然后再去着重看需要学习的章节就可以了!
知识点分的非常清晰! 每章还有总结 这…真的是我理想中的学习资料呐!

学习笔记整理过后放到这里

  • 一方面是让自己再二次记忆一下
  • 一方面是希望可以帮到有这方面知识需要的朋友 给他们一个新的切入点来重新了解这一个知识

本专题包括以下几个主要知识点~
在这里插入图片描述
本次笔记主要记录 抽象类接口的内容
这两部分是非常重点的作用 同时这两者也是有一些关联的 让我们看看这两个部分的内容吧

文章目录

6.抽象类

【1】抽象类引出

先来看一段代码

class Animal{
   
    private String name;
    private int age;//属性定义
    public Animal(String name, int age){
   
        //含参构造器
        super();
        this.name = name;
        this.age = age;
    }
    //动物都有eat的行为
    public void eat(){
   
        System.out.println("这里是某只动物 但是由于不清楚品种 所以目前不知道要吃啥 eat方法先声明着哈");       
    }
    //上面这种方法的声明并没有啥意义哦!
    
    public abstract void eat();
}

可以看到 这个 eat()方法就是先声明出来 但是不确定如何实现

总结下

父类Animal中某些方法 需要声明但又不确定如何实现时 可以将其生命为抽象方法 那么这个父类Animal就是抽象类

抽象类具体介绍

  • 用abstract关键字来修饰一个类时 这个类就叫抽象类
访问修饰符 abstract 类名{
   }
  • 用abstract关键字来修饰一个方法时 这个方法就是抽象方法
访问修饰符 abstract 返回类型 方法名(参数列表);
//没有方法体哦!!
  • 抽象类的价值更多作用是在于设计 设计者设计好抽象类让子类继承并具体实现这个抽象类

  • 抽象类是面试官比较爱问的知识点哦! 框架和设计模式中使用得较多!

【2】抽象类细节

1.抽象类不能被实例化

public class AbstractDetail01 {
   
	public static void main(String[] args) {
   
		//抽象类A 不能被实例化
		//new A();
	}
}

abstract class A {
   
	public void hi() {
   
		System.out.println("hi");
	}
}

2.抽象类不一定要包含abstract方法

抽象类中可以没有abstract方法哦!

abstract class A {
   
	public void hi() {
   
		System.out.println("hi");
	}
}

3.一旦类包含了abstract方法 这个类必须生命为abstract

4.abstract只能修饰类和方法 不能修饰属性和其他的内容

5.抽象类可以有任意成员 抽象类的本质还是类哦!

比如 非抽象方法 构造器 静态属性啥的 都星~

6.抽象方法不能有主体!也就是不能被实现!

请添加图片描述
这里抽象方法有了方法体 所以肯定会报错啦

7.如果一个类继承了抽象类 则它要不实现抽象类的所有抽象方法 要么自己也声明为抽象类

abstract class E {
   
	public abstract void hi();
}

abstract class F extends E {
   
    //这样不行!
}

class G extends E {
   
@Override
	public void hi() {
    
    	//这里相等于 G 子类实现了父类 E 的抽象方法
    	//所谓实现方法,就是有方法体
	}

8.抽象方法不能用private final static来修饰!因为这些关键字定义的方法不让重写啊!!

请添加图片描述

【3】抽象类课堂练习

【零基础 快速学Java】韩顺平 零基础30天学会Java_哔哩哔哩_
请添加图片描述
第四题——

超级好的一个例子哈!

抽象这个work方法 在设计虚拟类的时候就先不用考虑不同的员工对应的work方法内容不同该咋实现了!先定义抽象方法就行!

public class AbstractExercise01 {
   
	public static void main(String[] args) {
   
		//测试
		Manager jack = new Manager("jack", 999, 50000);
		jack.setBonus(8000);
		jack.work();
		CommonEmployee tom = new CommonEmployee("tom", 888, 20000
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值