首页 > 其他分享 >day08 final关键字&面向对象——多态&抽象类、方法&向上、向下转型

day08 final关键字&面向对象——多态&抽象类、方法&向上、向下转型

时间:2022-10-11 23:57:05浏览次数:55  
标签:day08 继承 Father 多态 接口 修饰 抽象类 方法 public

day08

final关键字

最终的不可更改的

特点:

1)修饰类,类不能被继承

2)修饰方法,方法不能被重写

3)修饰成员变量(变为常量),值不能修改,名字大写,声明同时给常量赋值

main方法中

1)修饰基本数据类型,基本数据类型不能改

2)修饰引用类型,内存地址不能被改变,但地址内的值可以

@Override//注解

String的底层是final修饰的char类型的数组

String就是final修饰的常量类

所以String被称为字符串常量

面向对象三要素——多态

没有继承就没有多态,生成的对象在调用父类的方法时,如果方法被子类重写,则调用的时子类重写的方法

代码当中体现多态性,父类引用指向子类对象

父类名 对象名 = new 子类名();

Java中,有两种形式可以实现多态:继承和接口

方法的重载实现的是编译时的多态性(也成为前绑定),重写实现的是运行时的多态性(也称后绑定)

抽象类

定义:

抽象类不能被实例化,它的作用是提供给其他类进行继承

抽象关键字abstract

public abstract class Father{
    public abstract void fun1();
    String name;
    private int age;
    public void fun2(){
        
    }
}
public class Son extends Father{
    public void fun1(){
        
    }
}

特点

抽象方法

被abstract修饰,只有方法签名,没有方法体,可以被子类重写

public abstract void fun1();

接口

接口只有方法签名

interface声明接口关键字

接口特点

接口只有方法签名和静态常量

接口的变量默认补全public final static

接口签名方法,默认使用public abstract修饰

一个类可以实现多个接口,Java中遵循单继承多实现,先继承后实现

被继承后必须重写所有方法

public class Son extends Father implements IPerson,IPlayer{
    public void fMethod(){
    }
    public void IPMethod(){
    }
    public void IPlMethod(){
    }
}

byMyself

接口可以继承接口,继承时可以不用重写父类接口的方法(可能因为接口做不到实例化)

类继承接口必须重写方法,否则报错

接口之间不能相互实现

优点:

解决单继承的问题(类只能单继承,但可以实现多个接口)

接口可以实现并行开发

便于重构

向上转型

父类类型创建子类对象

在此有Father类,Tom主类和Son类继承Father类

Father f = new Son();

向下转型

只有Object有向下转型的可能

Son f = new Father();//不能成功
Son f = (Son) new Father();//语法可以通过,但不建议
//先不说

标签:day08,继承,Father,多态,接口,修饰,抽象类,方法,public
From: https://www.cnblogs.com/xiaoto9426/p/16783050.html

相关文章

  • 抽象类与接口的比较?构造方法,构造方法重载,什么是复制构造方法?求N的阶乘?Java环境搭建:J
    大家可分享关于Java微服务相关知识,包括但不限于Java微服务开发经验、架构组成、技术交流、中间件等内容,我们鼓励springcloud架构为基础发散出击,从而达到技术积累的目的,快来......
  • 抽象方法和抽象类的注意事项
    抽象方法和抽象类的注意事项1.抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有......
  • 动手动脑——继承和多态
    动手实验 classGrandparent{publicGrandparent(){System.out.println("GrandParentCreated.");}publicGrandparent(St......
  • 继承与多态中动手动脑
    -子类自动拥有父类声明为public和protected的成员,这就是继承特性的体现之一。-public:外界可自由访问-private:外界不可访问-protected:同一包中的子类都可以访问,另一包......
  • Day08BOM
    概述:BOM(bowserobjectmodel)用于操作浏览器的相关内容。BOM缺乏规范,所以通过产生一系列的共用对象来解决这个问题。尽管这些共用的对象也存在对应的兼容问题,w3c介入后兼容......
  • 多态
    多态 多态机制的实现就是通过虚函数。 虚函数的原理  虚函数表单个类的虚函数表以上结论通过以下代码测试:运行结果: 证明内存就是如上分布。通过调用命......
  • 多态的优势和弊端
    在多态形式下,右边对象可以实现解耦合,便于扩展和维护personp=newStudent();定义方法的时候,使用父类型作为参数,可以接收所有子类对象,体现多态的扩展性与便利。1.多态的优......
  • Java封装、继承、多态、抽象、接口基础知识
    Java封装、继承、多态、抽象、接口基础知识封装面向对象三大特性:封装、继承、多态(四大特性则多一个抽象)定义把对象的属性和方法结合为一个独立的整体,并尽可能隐藏对......
  • Java语言中多态的机制
    1.方法解析Class文件的编译过程中,不包含传统编译中的连接步骤,一切方法的调用在Class文件中存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址。这个特性......
  • 封装继承多态
    封装继承多态封装封装的意义在于保护或者防止代码(数据)被我们无意中破坏。保护成员属性,不让类以外的程序直接访问和修改。隐藏方法细节。关于对象封装的原则:......