Java 继承的详解
2016-07-15 11:35
351 查看
继承是描述类与类之间的关系
既然是描述类与类之间的关系,那就要先了解类与类之间的常见关系~
在现实生活中,下面的例子体现了部分与整体~
学生 是人
狗 是动物
球队 包含 球员 整体与部分的关系,部分可以删除和增加
笔记本包含 cpu
整体与部分的关系,部分不可以删除和增加
航母编队 包含(航母 护卫舰 驱逐舰 舰载机 核潜艇)
在java中,写个体现类关系的例子吧~代码如下:
再来一个例子:
描述一个学生类-姓名年龄学号属性,学习的方法
描述一个工人类-姓名年龄工号属性,工作的方法
描述一个人类-姓名年龄属性,说话的方法。
可以发现学生类和人类天生有着联系,学生和工人都是人。所以人有的属性和行为学生和工人都会有。出现类代码重复,代码如下:
1:如果没有继承,出现类和类的关系无法描述
2:如果没有继承,类和类之间有关系会出现类和类的描述代码的重复。
so,这时候继承是很必须的~
继承的特点:
1:描述类和类之间的关系
2:降低类和类之间的重复代码
1:降低对象和对象之间的代码重复使用静态变量
2:降低类和类之间的代码重复使用就继承
继承细节:
1:类名的设定,被继承的类称之为父类(基类),继承的类称之为子类
2:子类并不能继承父类中所有的成员
1:父类定义完整的成员 静态成员,非静态,构造方法。静态变量和静态方
法都可以通过子类名.父类静态成员的形式调用成功。
2:所有的私有成员不能继承,private修饰的成员。
3:构造函数不能被继承
类与类之间通过extends关键字来实现
注意以下几点:
1:不要为了使用继承而继承。工人和学生都有共性的成员,不要为了节省代
码,让工人继承学生。
2.一定要弄清楚谁继承谁,不要弄错了~
下面给个学生类(子类)继承了人类(父类)的部分的代码:
既然是描述类与类之间的关系,那就要先了解类与类之间的常见关系~
在现实生活中,下面的例子体现了部分与整体~
学生 是人
狗 是动物
球队 包含 球员 整体与部分的关系,部分可以删除和增加
笔记本包含 cpu
整体与部分的关系,部分不可以删除和增加
航母编队 包含(航母 护卫舰 驱逐舰 舰载机 核潜艇)
在java中,写个体现类关系的例子吧~代码如下:
class Person{ String name; int age; Address add; Person(){ } Person(String name,int age,Address add){ this.name=name; this.age=age; this.add=add; } void speak(){ System.out.println("姓名:"+name+" 年龄:"+age+" "+add.print()); } } class Address{ String country; String city; String street; Address(){ } Address(String country,String city,String street){ this.country=country; this.city=city; this.street=street; } String print(){ return "地址:"+country+" "+"城市:"+city+" 街道;"+street; } } class Demo3{ public static void main(String[] args){ Address add=new Address("中国","广州","棠东东路"); Person p=new Person("jack",27,add); p.speak(); System.out.println(); } }在这个例子中,Person类中使用了Address类对象~说明这俩个类是有点关系的~每个人都有一个家庭地址~
再来一个例子:
描述一个学生类-姓名年龄学号属性,学习的方法
描述一个工人类-姓名年龄工号属性,工作的方法
描述一个人类-姓名年龄属性,说话的方法。
可以发现学生类和人类天生有着联系,学生和工人都是人。所以人有的属性和行为学生和工人都会有。出现类代码重复,代码如下:
class Person { String name; int age; // 静态变量(类变量)对象和对象之间的代码重复使用静态变量 static String country = "CN"; Person() { } void speak() { System.out.println(name + ":哈哈,我是人!!!"); } } // 让学生类和人类产生关系,发现学生is a 人,就可以使用继承 class Student { String name; int age; Student() { } void study() { System.out.println("姓名:" + name + "年纪:" + age + ":好好学习"); } } class Worker { String name; int age; void work() { System.out.println(name + ":好好工作,好好挣钱。"); } } class Demo1 { public static void main(String[] args) { Student s = new Student(); s.name = "jack"; s.age = 20; s.study(); Worker w = new Worker(); w.name = "rose"; w.work(); } }可以发现几个问题:
1:如果没有继承,出现类和类的关系无法描述
2:如果没有继承,类和类之间有关系会出现类和类的描述代码的重复。
so,这时候继承是很必须的~
继承的特点:
1:描述类和类之间的关系
2:降低类和类之间的重复代码
1:降低对象和对象之间的代码重复使用静态变量
2:降低类和类之间的代码重复使用就继承
继承细节:
1:类名的设定,被继承的类称之为父类(基类),继承的类称之为子类
2:子类并不能继承父类中所有的成员
1:父类定义完整的成员 静态成员,非静态,构造方法。静态变量和静态方
法都可以通过子类名.父类静态成员的形式调用成功。
2:所有的私有成员不能继承,private修饰的成员。
3:构造函数不能被继承
类与类之间通过extends关键字来实现
注意以下几点:
1:不要为了使用继承而继承。工人和学生都有共性的成员,不要为了节省代
码,让工人继承学生。
2.一定要弄清楚谁继承谁,不要弄错了~
下面给个学生类(子类)继承了人类(父类)的部分的代码:
class Person { String name; int age; // 静态变量(类变量)对象和对象之间的代码重复使用静态变量 static String country = "CN"; Person() { } void speak() { System.out.println(name + ":哈哈,我是人!!!"); } } // 让学生类和人类产生关系,发现学生is a 人,就可以使用继承 class Student extends Person { Student() { } void study() { System.out.println("姓名:" + name + "年纪:" + age + ":好好学习"); } } class Demo1 { public static void main(String[] args) { Student stu = new Student(); stu.name = "jack"; stu.age = 20; stu.study(); stu.speak(); System.out.println(stu.country); System.out.println(Student.country); } }这我就不贴效果图了~
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序