Java面向对象之继承extends 入门实例
程序员文章站
2022-10-06 18:55:43
一、基础概念 (一)继承的好处: 1.继承:提高了代码的复用性。 2.让类与类之间产生了关系,给多态这个特征提供了前提。 (二)继承的种类: 1.单继承:一个类只能有一个父类。 2.多继承:一个类可以有多个父类。 3.java支持单继承,不直接支持多继承。(因为多继承调用的不稳定性) (三)继承使用 ......
一、基础概念
(一)继承的好处:
1.继承:提高了代码的复用性。
2.让类与类之间产生了关系,给多态这个特征提供了前提。
(二)继承的种类:
1.单继承:一个类只能有一个父类。
2.多继承:一个类可以有多个父类。
3.java支持单继承,不直接支持多继承。(因为多继承调用的不稳定性)
(三)继承使用时候:
1.当事物之间存在着所属关系时。可以通过继承来体现这个关系。
如:XXX是YYY的一种。XXX extends YYY
2.父类中私有的部分,子类对象是无法直接访问的。子类对象通过setXXX和getXXX进行访问。
二、实例代码
1 //将student类和worker类共享的代码抽取到Person类中,形成一个父类Person。 2 class Person 3 { 4 //父类中私有的部分,子类对象通过setXXX和getXXX进行访问。 5 private String name; 6 int age; 7 8 public void setName(String name) 9 { 10 this.name = name; 11 } 12 public String getName() 13 { 14 return this.name; 15 } 16 void sleep() 17 { 18 System.out.println("Name: "+name+",age: "+age+" sleep ......"); 19 } 20 } 21 22 //student类继承了Person类的属性和方法(通过关键字extends继承) 23 class Student extends Person 24 { 25 //可以拥有自己的方法study 26 void study() 27 { 28 System.out.println("name: "+this.getName()+",age: "+age+" study ......"); 29 } 30 } 31 32 //worker类继承了Person类的属性和方法 33 class Worker extends Person 34 { 35 //可以拥有自己的方法work 36 void work() 37 { 38 System.out.println("name: "+this.getName()+",age: "+age+" work ......"); 39 } 40 } 41 class ExtendsDemo 42 { 43 public static void main(String[] args) 44 { 45 //创建一个实例p,赋给name和age,并输出sleep方法和study方法。 46 Student p = new Student(); 47 p.setName("xiaoming"); 48 p.age = 18; 49 p.sleep(); 50 p.study(); 51 //创建一个实例s,赋给name和age,并输出sleep方法和study方法。 52 Worker s = new Worker(); 53 s.setName("laoli"); 54 s.age = 38; 55 s.sleep(); 56 s.work(); 57 } 58 }
三、代码运行