10day_Java面向对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10day_Java面向对象相关的知识,希望对你有一定的参考价值。

1、继承

(1)在Java中,类的继承是指在一个类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类可继承的属性和方法;

  子类中可以直接调用父类的成员;

  

  继承的格式&使用

    使用extends关键字

    格式:

    class 子类 extends父类{ }

 1 /*
 2  *     父类
 3  *     定义员工类
 4  */
 5 public class Employee {
 6     String name;// 姓名
 7 
 8     public void work() {
 9         System.out.println("员工在工作");
10     }
11 }
 1 /*
 2  *     定义研发部员工类。继承员工类
 3  *     关键字extends
 4  *     子类是Develop,父类是Employee
 5  *     
 6  */
 7 public class Develop extends Employee {
 8     public void print() {
 9         System.out.println(name);
10     }
11 }
 1 /*
 2  * 测试类
 3  */
 4 public class Test {
 5     public static void main(String[] args) {
 6         // 创建研发员工类的对象
 7         Develop d = new Develop();
 8         // 子类的对象,调用父类中的成员
 9         d.name = "张三";
10         d.print();
11         d.work();
12     }
13 }

运行结果:

技术分享图片

(2)继承的好处和注意事项

  1、继承的出现提高了代码的复用性,提高了软件开发效率;

  2、继承的出现让类和类之间产生了关系,提高了多态的前提。

  3、一个类只能有一个父类,不能有多个父类,只允许单继承,不允许多继承;

  4、Java支持多层继承,如:类B继承类A,类C继承类B,类C同时拥有类A和类B的属性和功能;

  5、在Java中,子类和父类是一种相对的概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类。

  6、事物抽取,每个具体事物的共性抽取;子类的共性抽取,形成父类;

  7、继承体系:父类,内容最共性;子类,不但拥有共性,还拥有自己的特性

(3)继承后,子类父类中,成员变量的特点

  子类对象调用成员变量(就近原则)

  1、子类自己有,使用自己的;子类没有,调用父类的;

  2、在子类中,调用父类的成员,使用关键字super.调用父类的成员;

  3、子类(派生类)继承父类(超类、基类)

  4、this. 调用子类成员;

  5、super.调用父类成员;

(4)继承后,子类父类中,成员方法的特点 

  1、子类自己有,使用自己的;子类没有,调用父类的;

  2、方法的重写(Override)

    子类中出现了和父类一模一样的方法的时候,子类重写父类的方法,覆盖。

  3、当子类需要父类的功能,而功能主体子类有自己特有的内容时,可以重写父类中的方法。

(5)方法重写的注意事项

  1、子类方法覆盖父类方法,必须要保证子类方法的权限大于或者等于父类权限;

  2、四大权限:public protected default(默认,不能写) private

  3、写法上需要注意:

      必须一模一样:方法的返回值类型、方法名、参数列表都要一样。

2、抽象类

(1)抽象类的定义

  方法声明相同,但方法功能主体不同,只抽取方法声明,不抽取方法主体,那么这个方法就是一个抽象方法;

  抽象方法:没有主体的方法,必须使用关键字abstract修饰;

  当定义了抽象方法的类也必须被abstract关键字修饰,被abstract关键字修饰的类是抽象类。

(2)抽象类的使用方式

  抽象类不能实例化对象,不能new的;

  不能创建对象的原因:抽象方法没有主体,根本不能运行;

  抽象类的使用方式:定义类继承抽象类,将抽象方法进行重写,创建子类的对象

以上是关于10day_Java面向对象的主要内容,如果未能解决你的问题,请参考以下文章

03day_Java面向对象

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

07day_Java基础语法

03day_Java基础语法

01day_Java基础语法