Java-面向对象(抽象类,接口,多态)

一,superthis的含义以及用法。

1.super:代表父类的储存空间标识(可以理解为父亲的引用)。

2.this:代表当前对象的引用(谁调用就代表谁)。

this.成员变量()     super.成员变量()

this.成员方法名() super.成员方法名()

(1)this能出现在实例方法和构造方法中;

(2)this的语法是“this.”和“this()”;

(3)this不能出现在静态方法中;

(1)super能出现在实例方法和构造方法中。

(2)super的语法是“super.”和“super()”。

(3) super不能出现在静态方法中。

/**
 * @author 高影  2022/11/20  21:11
 * @version 1.0
 */
public class Student {
    public void study(){
        System.out.println("学习");
    }
}

/**
 * @author 高影  2022/11/20  21:11
 * @version 1.0
 */
public class Student01 extends Student{
    public void study(){
        System.out.println("我们在教师学习");
    }
    public void test(){
        this.study();
        super.study();
    }
}

super和this区别是:this可以看做一个引用变量,保存了该对象的地址,是当前对象整体,而super代表的是父类型特征,是子类局部的一些东西,这些继承过来的东西已经在子类里面了,你可以输出整体this,但不能输出父类型特征super。因为super指向的东西不是一个整体,没法打印输出。

二,抽象类

普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。

概念:拥有抽象方法的类就是抽象类,抽象类要使用abstract关键字声明。

抽象方法 是指没有方法体的方法,同时抽象方法还必须使用关键字abstract做修饰。

三,接口

概念:接口使用interface关键字,接口的使用,不能创建对象就可以实现类似于被继承,一个实现接口的类需要实现接口中所有的抽象方法,创建该类的对象,就可以调用该方法了,否者他必须是一个抽象类。

四,多态

概念:多态是面向对象程序设计的一个重要特征,指同一个实体同时具有多种形式,即同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态。

可以把不同的子类对象都当作父类来看,进而屏蔽不同子类对象之间的差异。

多态的好处:

1.多态可以让我们不用关心某个对象到底具有是什么类型,就可以使用该对象的某些方法。

2.提高了程序的可扩展性和可维护性。

/**
 * @author 高影  2022/11/20  21:42
 * @version 1.0
 */
public class Animal {
    //创建父类的普通方法
    public void play(){
        System.out.println("动物");
    }
}

/**
 * @author 高影  2022/11/20  21:42
 * @version 1.0
 */
public class Cat extends Animal{
    //添加重写的方法
    public void play(){
        System.out.println("小猫在玩耍");
    }
    //添加子类特有的功能
    public void sleep(){
        System.out.println("小猫在睡觉");
    }
}

/**
 * @author 高影  2022/11/20  21:42
 * @version 1.0
 */
public class Dog extends Animal{
    //添加重写的方法
    public void play(){
        System.out.println("小狗在玩耍");
    }
    //添加子类特有的功能
    public void eat(){
        System.out.println("小狗在吃东西");
    }
}

/**
 * @author 高影  2022/11/20  21:42
 * @version 1.0
 */
public class Test02 {
    public static void main(String[] args) {
        //创建对象
        Animal an = new Animal();
        Cat c = new Cat();
        Dog d = new Dog();
        an.play();//调用父类自己的功能
        c.play();//调用子类重写的功能
        d.play();//调用子类重写的功能
        c.sleep();//调用子类自己特有的功能
        d.eat();//调用子类自己特有的功能
    }
}

这是以上运行出来的结果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值