栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

从0开始学Java系列 day11:一些关键字和object类中常用方法,抽象与接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从0开始学Java系列 day11:一些关键字和object类中常用方法,抽象与接口

一.虚方法和非虚方法
虚方法:可以重写的方法
非虚方法:不可以重写的方法:静态方法 构造方法 私有方法

二.final
final修饰的类不能被继承 (太监类)
final修饰的变量 是常量
final修饰的方法 不能被重写
final修饰的对象 地址值不能被改变

三.object类
object类是所类直接或者间接的父亲
如果一个类没有显示的继承另一个类 则此类 默认继承自object类

四.native
本地的 本国的 原生的
1.native 只能是修饰方法
2.native方法没有方法体
3.java有些功能无法实现 需要借助c/c++实现 native方法
4.native方法被调用时 在本地方法栈中开辟空间
5.native方法是可以被重写的
五.Object类中方法
toStiring():直接快速输出对象的属性值 操作:右键找到Generate里面有

public class Test {
    public static void main(String[] args) {
        Person person = new Person("李白", 18);
        String s = person.toString();
        System.out.println(person); //重写前运行com.atguigu.review.Person@4554617c
        //重写toString方法后运行结果Person{name='李白', age=18}
    }
class Person{
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    String name;
    int age;
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + ''' +
                ", age=" + age +
                '}';
    }
}
}

getClass():获取运行时类型

Animal ani =new Cat();
ani.getClass();

hashCode():返回该对象的哈希码

equals():
==:1.比较基本数据类型 比较的是实际的值
2.比较的是引用数据类型 比较的是地址值
equals():
1.重写前 比较的是地址值
2.重写后 比较的是属性值

六.抽象
抽象的意义:
1.在创造一个事物之前我们大致模糊的把将要编写的类(实例)想象成一个大致的类
但其本身不能创造实例
2.规范子类 如果你将要继承我那么就必须继承我所有的要求你做到的事,当然你也可以自主拓展

如下:

public abstract class Animal  {
    abstract void eat();
    abstract void sleep();
}
class  Cat extends Animal{
    public void catchMouse(){
    }
    @Override
    void eat() {
    }
    @Override
    void sleep() {
    }
}

抽象的实现
//定义抽象类
[权限修饰符] abstract class 类名{}
//如何定义抽象方法
[权限修饰符] abstract 返回值类型 方法名(形参列表){}

抽象使用时注意点:
1.一个类 必须实现父类(抽象类)所有抽象方法 否则 此类也要变成抽象类
2.抽象类不可创建对象
3.抽象类可以存在普通的资源(方法 属性)
4.如果一个类中有抽象方法 那么此类 一定为抽象类
5.抽象类中可以没有抽象方法

七.接口
接口的作用:
1.定义规范 如果你是 则必须能
2.用来表述 现实社会中 has a 的关系

如何定义接口:

[权限修饰符] interface 接口名{
常量;//public static final 修饰
1.抽象方法;//public abstract 修饰
void show();
2.默认方法://public
default 返回值类型 方法名:
3.静态方法//public
static 返回值类型 方法名:
}

使用接口及其注意点:‘
1.可以让一个类实现多个接口 (一个类可以先继承一个父类然后再实现多个接口,顺序不能变。)

class 类名 implements 接口名1,接口名2{}

2.如果一个类实现了接口 那必须重写接口中所有的抽象方法 否则 也要将此类变为抽象类

3.接口可以继承

接口1 extends 接口2,接口3{}

如果一个类实现了接口1,那么它不仅要重写接口1中的抽象方法 也要重写接口2,3的抽象方法

4.当一个类实现了两个接口 内部有同名的 默认方法 则必须要重写
4.1.直接重写 调用的是重写后的方法
4.2.在重写的方法中调用:

接口名.super.方法名();
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/274584.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号