JAVA学习--面向对象的特征二:继承性
* 一、面向对象的特征二:继承性
*
* 2.通过"class A extends B"类实现类的继承。
* 子类:A 父类(或基类 SuperClass):B
*
* 3.子类继承父类以后,父类中声明的属性、方法,子类就可以获取到。
* 明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使得子类不可以直接
* 调用罢了。
* 子类除了通过继承,获取父类的结构之外,还可以定义自己的特有的成分。
*
* extends:子类是对父类功能的“扩展”,明确子类不是父类的子集。
*
* 4.java中类的继承性只支持单继承:一个类只能继承一个父类。反之,一个父类可以有多个子类。
* 5.子父类是相对的概念。
*
* 二、方法的重写 ---(方法的重载) 修饰符 返回值类型 方法名 (参数列表){}
* 1.前提:有子类继承父类
* 2.子类继承父类以后,若父类的方法对子类不适用,那么子类可以对父类的方法重写(override overwrite)、覆盖、覆写。
* 3.重写的规则: 1)要求子类方法的“返回值类型 方法名 (参数列表)”与父类的方法一样
* 2)子类方法的修饰符不能小于父类方法的修饰符
* 3)*若父类方法抛异常,那么子类方法抛的异常类型不能大于父类的。
* 4)*子父类的方法必须同为static或同为非static的。
1 public class TestExtends { 2 public static void main(String[] args) { 3 Student s = new Student(); 4 s.eat(); 5 6 Worker w = new Worker(); 7 w.eat(); 8 9 Person p = new Person(); 10 p.eat(); 11 12 s.setAge(12); 13 s.setName("麻华龙"); 14 System.out.println(s.getName() + ":" + s.getAge()); 15 16 Graduate g = new Graduate(); 17 g.eat(); 18 g.info(); 19 g.show(); 20 } 21 } 22 23 class Person { 24 private String name; 25 private int age; 26 27 public String getName() { 28 return name; 29 } 30 31 public void setName(String name) { 32 this.name = name; 33 } 34 35 public int getAge() { 36 return age; 37 } 38 39 public void setAge(int age) { 40 this.age = age; 41 } 42 43 public void eat() { 44 System.out.println("吃饭"); 45 } 46 47 void walk() { 48 System.out.println("走路"); 49 } 50 private void sleep(){ 51 52 } 53 } 54 55 class A{ 56 57 } 58 59 class Student extends Person{ 60 // class Student extends Person,A{ 61 // private String name; 62 // private int age; 63 private String schoolName; 64 65 public Student(){ 66 67 } 68 public Student(String name,int age){ 69 // this.name = name; 70 // this.age = age; 71 this.setName(name); 72 this.setAge(age); 73 } 74 75 // public String getName() { 76 // return name; 77 // } 78 // public void setName(String name) { 79 // this.name = name; 80 // } 81 // public int getAge() { 82 // return age; 83 // } 84 // public void setAge(int age) { 85 // this.age = age; 86 // } 87 // 88 // 对父类同名的方法的重写、覆盖 89 public void eat(){ 90 System.out.println("应该多吃有营养的"); 91 } 92 public void walk(){ 93 System.out.println("背着书包蹦蹦跳跳的走路"); 94 } 95 public void info(){ 96 eat(); 97 //System.out.println("name:" + name); 98 System.out.println("我是一个学生"); 99 } 100 //不是对父类私有的sleep()方法的重写。 101 private int sleep(){ 102 return 0; 103 } 104 105 } 106 107 108 109 class Worker extends Person{ 110 public void eat(){ 111 System.out.println("工人吃饭"); 112 } 113 114 public void walk(){ 115 116 } 117 } 118 119 class Graduate extends Student{ 120 public void show(){ 121 System.out.println("我是一个研究生"); 122 } 123 }
转载于:https://www.cnblogs.com/zhangfan94/p/4263272.html
JAVA学习--面向对象的特征二:继承性相关推荐
- 面向对象的特征二 继承性
有相同的属性和方法都可以提取出来, 就形成了一个公共的部分,公共的部分形成一个类,其他类有一样的属性和方法的时候 不用在自己类里面在写出来,直接就公共的类中调用即可. 总结,造一个公共类,里面的属性和 ...
- Java基础-面向对象第二特征之继承(Inheritance)
Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...
- Java中面向对象三大特征总结
JAVA中面向对象的三大特征: 面向对象具有继承性(Inheritance) 面向对象具有多态性(Polymorphism) 面向对象具有封装性(Encapsulation) 一.继承 多个类具有共同 ...
- Java面试面向对象三大特征,Java面试经典基础问答三
1. 写clone()方法时,通常都有一行代码,是什么? 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对 ...
- Java原理 面向对象的特征与“六原则一法则”
面向对象的特征 主要有抽象.继承.封装和多态四个方面,下面是我们来详细分析它们的含义: - 抽象: 抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属 ...
- Java基础(面向对象三大特征)
面向对象三大特征 封装 继承 多态 1.封装 封装,顾名思义就是将一个东西通过层层包装裹起来,例如c语言中的结构体,将属性和方法封装在一起.更加具体的,发达国家对发展中国家进行技术垄断就是通过将高科技 ...
- java面向对象的特征二:继承性 —(14)
1.为什么要有类的继承性?(继承性的好处) ① 减少了代码的冗余,提高了代码的复用性 ② 便于功能的扩展 ③ 为之后多态性的使用,提供了前提 图示: 2.继承性的格式: class A extends ...
- Java学习-面向对象进阶二
目录 1 日期与时间 1.1 Date类 1.2 Date类 1.3 练习--秒杀活动 1.4 Calender 1.5 JDK8新增API 1.5.1 概述 1.5.2 LocalDate.Loca ...
- Java学习——面向对象编程思想
目录 一. 基本概念 二. 面向对象与面向过程的区别 三. 面向对象程序设计的类与对象 3.1 对象 3.2 类 四. 面向对象的四大特征 4.1 抽象 4.2 继承 4.3 封装 4.4 多态 1) ...
最新文章
- 在一个空的Eclipse中安装Android开发的ADT和SDK
- 如何用Windows Live Writer写网易博客
- WPF企业内训全程实录(中)
- h5通过php微信支付宝支付,用H5调用支付微信公众号支付的解析
- Oracle中输出一个变量
- 上手测试GaussDB(for Redis) 和开源 Redis,只为推荐质优价廉的Redis
- sql找出2000-3000年中的闰年。_跟飞哥学编程:SQL入门-4-查询和条件
- 百度云部署SSL证书
- python Pandas文件读写
- android打开ofd文件
- Component template should contain exactly one root element. If you are using v-if on multiple eleme
- 使用phpStudy显示3306端口被占用,该怎么办?
- promise是什么?
- couldn't set locale: correctly报错的解决
- html复习第七天 京东首页布局完成
- 整数、长整型、浮点型、字符串
- 抖音点亮蓝v多少钱?有啥好处-万顿思电商
- Google账户_GooglePlay_关联
- 内核二分缺陷_缺陷跟踪
- 智能优化算法:爬行动物搜索算法-附代码