Java基础(极客)——12、Java面向对象基本特征:继承
2015-05-26 15:52
627 查看
package com.zhh.java.jicheng;
/**
* 1、Java继承的实现
* 继承就是扩展父类功能
* 子类可以调用父类的方法和属性,子类具备父类的所有,子类的一切都上在父类的基础上扩展而来的
* 这样减少了代码的冗余(重复)
*
* 父类只能调用父类中的中的方法和属性,子类即可调用自己的方法和属性,也可调用父类的方法和属性
* 如果方法被重写,无论子类父类调用的都是,重写后的方法
*
*
*
*/
public class JiChengDemo1 {
public static void main(String[] args) {
Student student = new Student();
student.setName("张飞");
student.setAge(30);
student.setScore(100);
student.toString();
}
}
class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
/**
*
* 子类继承了父类,说明子类有了父类的所有方法和属性
* 子类可以调用父类的所有方法和属性
*/
class Student extends Person {
private int score;
public int getScore() {
return score;
}
public void setScore(int i) {
this.score = i;
}
@Override
public String toString() {
System.out.println(getName() + ":" + getAge() + ":" + getScore());
return super.toString();
}
}
package com.zhh.java.jicheng;
/**
* 2、Java继承的限制
* 1)在java中只能单继承,可以多实现(一个孩子只有一个父亲)
* 2)子类不能直接访问父类的私有成员(可以调用getset)
*
*
*/
public class JiChengDemo2 {
public static void main(String[] args) {
Worker worker = new Worker();
worker.setAge(100);
worker.tell();
}
}
class People {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Worker extends People {
public void tell() {
// System.out.println(age);当age为private修饰是,子类不能调用,只能同过getset方法调用
System.out.println(getAge());
}
}
package com.zhh.java.jicheng;
/**
*3、Java子类对象实例化过程
*在子类实例化之前,必须先调用父类中的构造方法(系统调用),在调用子类中的构造方法
*
*
*/
public class JiChengDemo3 {
public static void main(String[] args) {
Son son = new Son();
/* 打印的结果是
* 父类的构造方法
* 子类的构造方法
*
*/
}
}
class Father {
public Father() {
System.out.println("父类的构造方法");
}
}
class Son extends Father {
public Son() {
//系统有一个默认super();强行调用父类构造方法
System.out.println("子类的构造方法");
}
}
package com.zhh.java.jicheng;
/**
* 4、Java方法重写与super关键字
* 方法重写:子类写了和父类同样的方法(方法名,返回类型 ,参数都相同)
*
* 重写限制:
* 被子类重写的方法不能比父类有更加严格的访问权限
* private<default<public
* private只能在本类中访问
* 默认的是default只能在同一包下访问
* public整个工程下都可访问
*
* super强行调用父类方法的执行
* super();强行调用父类中的构造方法
* super.tell();强行调用父类中的名字叫tell()的方法
* super不一定在重写时使用,也可以表示那些方法是从父类中继承而来的
*/
public class JiChengDemo4 {
public static void main(String[] args) {
B b = new B();
b.tell();
}
}
class A {
//public整个工程下都可访问到
public void tell() {
System.out.println("我是tell方法");
}
//private只能在本类中访问
private void say() {
}
//默认的是default只能在同一包下访问
void print() {
}
}
class B extends A {
//方法重写
/*重写此方法的修饰符只能是public,其他的修饰符都比他严格
* private<default<public
*
*/
@Override
public void tell() {
super.tell();//super强行调用父类方法的执行
System.out.println("我重写了tell方法");
}
}
package com.zhh.java.jicheng;
/**
* 5、Java重写与重载的区别
*
方法重载Overloading
方法名相同,参数不同(参数的个数,顺序,类型)
对权限没有要求
发生在一个类中
方法重写Overriding
方法名,参数,返回类型完全相同
被重写的方法不能拥有比父类更加严格的权限
发生在继承中
*
*/
public class JiChengDemo5 {
public static void main(String[] args) {
}
}
源码下载:
http://download.csdn.net/detail/zhaihaohao1/8741715
视频下载:
http://c38.yunpan.360.cn/my/index/#%2F%E7%A8%8B%E5%BA%8F%E5%BC%80%E5%8F%91%2Fjava%2F
/**
* 1、Java继承的实现
* 继承就是扩展父类功能
* 子类可以调用父类的方法和属性,子类具备父类的所有,子类的一切都上在父类的基础上扩展而来的
* 这样减少了代码的冗余(重复)
*
* 父类只能调用父类中的中的方法和属性,子类即可调用自己的方法和属性,也可调用父类的方法和属性
* 如果方法被重写,无论子类父类调用的都是,重写后的方法
*
*
*
*/
public class JiChengDemo1 {
public static void main(String[] args) {
Student student = new Student();
student.setName("张飞");
student.setAge(30);
student.setScore(100);
student.toString();
}
}
class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
/**
*
* 子类继承了父类,说明子类有了父类的所有方法和属性
* 子类可以调用父类的所有方法和属性
*/
class Student extends Person {
private int score;
public int getScore() {
return score;
}
public void setScore(int i) {
this.score = i;
}
@Override
public String toString() {
System.out.println(getName() + ":" + getAge() + ":" + getScore());
return super.toString();
}
}
package com.zhh.java.jicheng;
/**
* 2、Java继承的限制
* 1)在java中只能单继承,可以多实现(一个孩子只有一个父亲)
* 2)子类不能直接访问父类的私有成员(可以调用getset)
*
*
*/
public class JiChengDemo2 {
public static void main(String[] args) {
Worker worker = new Worker();
worker.setAge(100);
worker.tell();
}
}
class People {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Worker extends People {
public void tell() {
// System.out.println(age);当age为private修饰是,子类不能调用,只能同过getset方法调用
System.out.println(getAge());
}
}
package com.zhh.java.jicheng;
/**
*3、Java子类对象实例化过程
*在子类实例化之前,必须先调用父类中的构造方法(系统调用),在调用子类中的构造方法
*
*
*/
public class JiChengDemo3 {
public static void main(String[] args) {
Son son = new Son();
/* 打印的结果是
* 父类的构造方法
* 子类的构造方法
*
*/
}
}
class Father {
public Father() {
System.out.println("父类的构造方法");
}
}
class Son extends Father {
public Son() {
//系统有一个默认super();强行调用父类构造方法
System.out.println("子类的构造方法");
}
}
package com.zhh.java.jicheng;
/**
* 4、Java方法重写与super关键字
* 方法重写:子类写了和父类同样的方法(方法名,返回类型 ,参数都相同)
*
* 重写限制:
* 被子类重写的方法不能比父类有更加严格的访问权限
* private<default<public
* private只能在本类中访问
* 默认的是default只能在同一包下访问
* public整个工程下都可访问
*
* super强行调用父类方法的执行
* super();强行调用父类中的构造方法
* super.tell();强行调用父类中的名字叫tell()的方法
* super不一定在重写时使用,也可以表示那些方法是从父类中继承而来的
*/
public class JiChengDemo4 {
public static void main(String[] args) {
B b = new B();
b.tell();
}
}
class A {
//public整个工程下都可访问到
public void tell() {
System.out.println("我是tell方法");
}
//private只能在本类中访问
private void say() {
}
//默认的是default只能在同一包下访问
void print() {
}
}
class B extends A {
//方法重写
/*重写此方法的修饰符只能是public,其他的修饰符都比他严格
* private<default<public
*
*/
@Override
public void tell() {
super.tell();//super强行调用父类方法的执行
System.out.println("我重写了tell方法");
}
}
package com.zhh.java.jicheng;
/**
* 5、Java重写与重载的区别
*
方法重载Overloading
方法名相同,参数不同(参数的个数,顺序,类型)
对权限没有要求
发生在一个类中
方法重写Overriding
方法名,参数,返回类型完全相同
被重写的方法不能拥有比父类更加严格的权限
发生在继承中
*
*/
public class JiChengDemo5 {
public static void main(String[] args) {
}
}
源码下载:
http://download.csdn.net/detail/zhaihaohao1/8741715
视频下载:
http://c38.yunpan.360.cn/my/index/#%2F%E7%A8%8B%E5%BA%8F%E5%BC%80%E5%8F%91%2Fjava%2F
相关文章推荐
- Java基础(极客)——10、Java面向对象的基本特征之一:封装性
- Java面向对象基本特征:继承
- java基础之面向对象及其基本特征
- java基础2 面向对象三等基本特征,五大基本特性
- JAVA基础之面向对象特征:继承
- java面向对象基本特征:封装、继承、多态
- 【java基础】--(2)面向对象特征之概念、封装、继承
- JAVA笔记四(12-15 面向对象基础)
- c++基础 之 面向对象特征一 : 继承
- c++基础 之 面向对象特征一 : 继承
- Java面向对象高级--继承的基本实现--extends
- java面向对象基本思想--封装继承多态
- 黑马程序员—4—Java基础: 面向对象继承学习笔记和学习心得体会
- 第三讲 Java的面向对象特征(继续基础部分......)
- [零基础学JAVA]Java SE面向对象部分-12.面向对象基础(07) 推荐
- 第1章 Java基本概念及环境配置——FAQ1.02 面向对象程序设计的基本特征有哪些?
- java面向对象思想(2)——三大基本特征
- JAVA面向对象基础:继承、变量隐藏、方法重写、包、修饰符、this、super
- 黑马程序员_JAVA面向对象三大基本特征
- 面向对象基本特征----封装继承和多态