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