欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java编程面向对象三大特性介绍

程序员文章站 2022-03-26 16:46:11
学习JAVA.day03C++/JAVA同样都具备面向对象的特性:封装、继承、多态“面向对象的三大特性?”、“什么是面向对象?”、“面向对象与面向过程相比有什么优点?”、“抽象类,为什么使用抽象类?”、“多继承,多继承怎么实现?”、“我们聊一下多继承中虚表的运用”、“什么是多态?”等等,就这些基础性的概念及其运用,往往是软开面试中的热门问题;今天就类的继承关系学习内容进行总结:抽象类,为什么使用抽象类?抽象类往往在继承关系中属于父类,不对其进行实例化,只是对多种具有相似性个体的共性的抽离;典型的...

学习JAVA.day03
C++/JAVA同样都具备面向对象的特性:
封装、继承、多态
“面向对象的三大特性?”、“什么是面向对象?”、“面向对象与面向过程相比有什么优点?”、“抽象类,为什么使用抽象类?”、“多继承,多继承怎么实现?”、“我们聊一下多继承中虚表的运用”、“什么是多态?”等等,就这些基础性的概念及其运用,往往是软开面试中的热门问题;
今天就类的继承关系学习内容进行总结:
抽象类,为什么使用抽象类?抽象类往往在继承关系中属于父类,不对其进行实例化,只是对多种具有相似性个体的共性的抽离;
典型的就是游戏“飞机大战”,敌机存在三种类型,大飞机、中飞机和小飞机,他们的成员变量中存在共性,也存在个性;有机会我后面会用JAVA写一个“飞机大战”的游戏,并附上源码;
现在进行举例,存在多个职业,讲师、助教和辅导员,他们都是学校的员工,那么我们先将员工的共性进行抽离:

public class Employee {
    int empNum;      //员工编号
    String name;     //员工姓名
    int age;         //员工年龄

    public void method()   //方法
    {
        System.out.println("Employee Num:"+empNum+"  "+name+"  "+age);
    }
}

每个职业或许存在个性的变量或者方法,我们可以在其职业类中进行单独的定义:

package cn.itcast.day03;
//this本类,super父类调用
public class Teacher extends Employee{
    @Override
    public void method()
    {
        System.out.println("Teacher Num:"+empNum+"  "+name+"  "+age);
    }
}
package cn.itcast.day03;

public class Tutor extends Employee{
    @Override
    public void method()
    {
        System.out.println("Tutor Num:"+empNum+"  "+name+"  "+age);
    }
}

注意事项:
/*
方法覆盖重写的注意事项:
1.必须保证父子类之间方法的名称相同,参数列表也相同;
@Override:写在方法前面,用来检测是不是有效的正确的覆盖重写
这个注解就算不写,只要满足要求,也是正确的覆盖重写;
2.子类方法的返回值必须小于等于父类方法的返回值范围
java.lang.Object类是所有类的公共子类的公共最高父类(祖宗类)
3.子类方法的权限必须大于等于父类方法的权限修饰符
*/

每种语言都有自己的特色,JAVA中的super是真的有意思;

本文地址:https://blog.csdn.net/ChuqiYin/article/details/110242644

相关标签: java