拔丝芋头的Java学习日记---Day10

< 今日知识点 >

  • 方法重写
  • 什么是多态
  • instanceof 和类型转换
  • static 关键字详解
  • 抽象类
  • 接口的定义和实现
  • N种内部类
  • 异常01:Error 和 Exception
  • 异常02:捕获和抛出异常
  • 异常03:自定义异常以及经验小结

·
·
`

— 01方法重写
public class DemoA extends DemoB {
    public static void test(){
        System.out.println("A=>test()");
    }
}

·

public class DemoB {
    public static void test() {
        System.out.println("B=>test()");
    }
}

·

import OOP.Demo03.DeomoA;
public class Application {
    public static void main(String[] args) {
	
	//方法的调用只和左边定义的数据类型有关
        A a = new A();
        a.test();               //调用A方法

        //父类的引用指向了子类
        B b = new A();
        b.test();
    }
}

·

运行结果:
A=>test()
B=>test()
·
重写总结:
1、必须要有继承关系,子类重写父类的方法!
2、方法名必须相同,参数列表必须相同,方法体不同。
3、修饰符范围可以扩大,但是不能缩小 public > Protected > Default > private
4、抛出的异常:范围可以被缩小,但不能扩大。
5、为什么需要重写?

  • 父类的功能子类不一定需要,或者不一定满足
    6、凌乱的记录:静态方法可以直接通过类访问,也可以通过实例方位(共享)
    ·
    ·
    ·
—02 多态

1、一些笔记:

  • 多态即同一方法可以根据发送对象的不同,而采用多种不同的行为方式。
  • 一个对象的实际类型是确定的,但可以指向对象的引用类型有很多(比如父类、有关系的类)。
  • 对象能执行哪些方法,主要看对象左边的类型,和右边关系不大!

Student s1 = new Student ( ) ; //主要看Student类
Person s2 = new Student ( ); //主要看Person类

  • 子类能够调用自己的方法,也能够调用继承的父类的方法;而父类只能调用自己的方法,不能够调用子类的方法。
  • 多态是方法的多态,属性没有多态
  • 存在条件:继承关系、子类重写父类方法,父类引用指向子类对象
  • instanceof 引用类型转换
    ·
    ·
    ·
—03 instanceof 和类型转换

笔记:
1、把子类转换为父类,是向上转型,可能会丢失自己独有的方法
2、把父类转换为子类,向下转型:强制转换
3、作用:方便方法的调用,减少重复的代码
·
·
·

—04 static关键字
public class Student {

    private static int age;
    private double score;
    
    public void run(){
        
    }
    
    public static void go(){
        
    }

    public static void main(String[] args) {
        Student s1 = new Student();
        Student.go();            //非静态方法需要new了新对象之后才能调用
        run();                       //静态方法run可以直接调用



    }
}

·

静态方法run可以直接调用
非静态方法需要new了新对象之后才能调用
非静态方法可以去调用静态方法里的所有东西,而静态方法里面只能调用静态方法,不能调用非静态方法 (是类加载的原因)

·
·
·

—05 抽象类

1、加了abstract就变成抽象类
2、抽象类不能new出来,不能被实例化,只能靠子类去实现它,这是一种约束
3、抽象类里面可以写普通方法,抽象方法必须写在抽象类中

思考题:
- 抽象类存在构造器吗?
- 抽象类存在的意义?
·
·
·

—06 接口

1、比较:

  • 普通类:只有具体实现
  • 抽象类:具体实现和规范(抽象方法)都有!
  • 接口:只有规范!自己无法写方法!
    2、接口的本质:接口就是规范,定义的是一组规则,用interface定义
    3、接口中的所有定义方法其实都是抽象的 public abstract
    4、接口小总结:
  • 是一个约束
  • 定义一些方法,让不同的人实现
  • 接口中默认的方法都是 public abstract
  • 接口不能被实例化,接口中没有构造方法
    ·
    ·
    ·
—07内部类
  • 内部类就是在一个类的内部再定义一个类,比如A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对于B类来说就是外部类了。
    1、成员内部类
    2、静态内部类
    3、局部内部类
    4、匿名内部类
    ·
    ·
    ·
—08 异常机制
  • 在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 异常处理五个关键字:try、 catch 、finally 、throw 、throws
  • 在这里插入图片描述
    ·在这里插入图片描述

·
·
·

附:PPT图片均来自b站 【狂神说Java】Java零基础学习视频通俗易懂

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值