用三个类父类,子类,测试类
测试java的三大特性:封装,继承,多态:
父类:
package oop;
/** 面向对象的三大特性:封装,继承,多态 */
public class Character {
/*
* 封装:万物皆对象,我们把这些对象封装起来组成数据类型,那数据类型包括 属性和方法
*/
/*
* 类中的属性隐藏,提供公开的方法 修辞符 类型 属性名称; (可选:将赋值)
*/
private String name;
private int age;
private final long ID;
/* 类需要实例化,就提供构造方法 */
public Character(long ID) {
this.ID = ID;
System.out.println("父类的构造方法,有参的");
}
/* 无参的构造函数,自己不定义系统也会定义一个无参无实现的工作函数 */
public Character() {
this.ID = 1000009489;
System.out.println("父类的构造方法,无参的");
}
static{
System.out.println("父类的静态代码块");
}
{
System.out.println("父类的实例代码块");
}
/* 为隐藏的属性提供公开的方法seter和getter */
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public long getID() {
return ID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/*
* 定义方法 修辞符 返回类型 方法名(参数列表){} 参数:类型 参数名
*/
public void method1() {
System.out.println("父类的method1()方法");
}
private void method2(int num, String name) {
System.out.println("父类的method2(int num, String name)方法");
}
public void method3(String name) {
System.out.println("父类的method3(String name)方法");
}
/*
* 方法的重载: 同一个类,同名,不同参数
*/
public void m1() {
System.out.println("父类的m1()方法");
}
/*
* public boolean m1(){ error }
*/
/*
* private void m1(){ error
* }
*/
public void m1(String name) {
System.out.println("父类的m1(String name)方法");
}
/*public boolean m1(String name) {
error
}*/
public void m1(String name, int age) {
System.out.println("父类的m1(String name, int age)方法");
}
public boolean m1(int age) {
System.out.println("父类的m1(int age)方法");
return true;
}
}
子类:
package oop;
/**
* 继承:子类继承于父类,继承了方法和属性 语法: 修辞符 class 子类名 extends 父类名{}
*/
public class SendCharacter extends Character {
private String sendName;
public String getSendName() {
return sendName;
}
static{
System.out.println("子类的静态代码块");
}
{
System.out.println("子类是实例代码块");
}
public void setSendName(String sendName) {
this.sendName = sendName;
}
/* 子类的构造方法一定要调用父类的构造方法 */
public SendCharacter(long ID) {
super(ID);// 调用父类的构造方法
System.out.println("子类的有参构造方法");
}
public SendCharacter() {
super();// 调用父类的构造方法
System.out.println("子类的无参构造方法");
}
/*方法的覆盖:
* 1.同没
* 2.同参
* 3.父子类之间
* 4.子类的修辞符不能比父类的更封闭
* 5.子类抛出的异常不能比父类更宽泛
* */
public void m1(){
System.out.println("子类覆盖的m1()方法");
}
private void method2(int num, String name) {
System.out.println("子类覆盖的method2(int num, String name)方法");
}
public void method3(String name) {
System.out.println("子类覆盖的method3(String name)方法");
}
/**自己写的方法:*/
public void subM1(){
System.out.println("子类自己的subM1()方法");
}
}
测试类:
package oop;
public class Test {
public static void main(String[] args) {
System.out.println("main of start");
//父类对象
Character c=new Character();
//父类对象,只能调用父类的方法
c.m1();
c.m1(10);
//子类对象,父类,子类的方法都能调用
SendCharacter sc=new SendCharacter();
sc.subM1();
//多态:--把子类对象当父类来看
Character cs=new SendCharacter();
cs.m1();
cs.m1(20);
//cs.subM1();//error
/*
*
* 1.如果我们把子类的对象当成父类来看,那我们就只能访问
* 父类中已有的方法和属性
* 2.如果子类把父类的方法覆盖了,再把子类当成父类来看,去
* 调用方法调用的是覆盖后的方法
*
* 主观认为----------客观存在
*
* 编译时类型(编译器)--------运行时类型(JVM)
* */
System.out.println("main of end");
}
//运行结果如下:
/*main of start
父类的静态代码块
父类的实例代码块
父类的构造方法,无参的
父类的m1()方法
父类的m1(int age)方法
子类的静态代码块
父类的实例代码块
父类的构造方法,无参的
子类是实例代码块
子类的无参构造方法
子类自己的subM1()方法
父类的实例代码块
父类的构造方法,无参的
子类是实例代码块
子类的无参构造方法
子类覆盖的m1()方法
父类的m1(int age)方法
main of end*/
}
分享到:
相关推荐
Java编程语言以其强大的功能和广泛的应用而闻名,其中三大特性——封装、继承和多态是其核心概念,对于理解和编写高效、可维护的代码至关重要。 **封装**是面向对象编程的基础,它涉及到将数据(属性)和操作这些...
Educoder题目:Java面向对象 - 封装、继承和多态答案解析
Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析
OOP 的主要特征包括封装、继承和多态。 1. **封装**:封装是将数据和操作数据的方法捆绑在一起,隐藏对象的属性和实现细节,仅对外提供公共访问方式。这样可以减少外部环境对对象的影响和破坏,提高代码的安全性和...
java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素...
本资源摘要信息将对 Java 基础知识点进行总结,涵盖继承、封装、多态等概念,并对面向对象的设计、数据库设计模式等进行讲解。 继承 继承是 Java 中的一种机制,允许一个类继承另一个类的属性和方法。继承的语法是...
封装继承多态总结
封装、继承、多态 一、 封装 封装是面向对象编程的三大特性之一,它是指将同一类事物的特性与功能包装在一起,对外暴露调用的接口...Java 面向对象的三大特性是:封装、继承与多态。这三大特性是面向对象编程的核心。
通过以上对封装、继承、覆盖、构造过程、多态以及 `static`、`this`、`super` 和 `final` 关键字的详细介绍,我们可以更好地理解和运用Java的核心概念和技术点,从而编写出更加高效、灵活和易于维护的代码。
java封装 继承与多态 程序设计 类与对象
JAVA 封装继承与多态是面向对象程序设计语言中三个重要的概念,本文将对这三个概念进行详细的解释。 一、封装 封装是指隐藏对象的内部细节,使对象外部不能随意存取对象的内部数据的过程。JAVA 中,对象就是一个...
在Java中,多态性(Polymorphism)是面向对象编程的三大特性之一,另外两个是封装和继承。多态性使得代码更加灵活,能够处理不同类型的对象,提高代码的复用性。 在Java中,多态分为类多态和接口多态。类多态主要...
在这个实例中,我们将探讨四个关键概念:封装、继承、多态以及文件流操作,这些都是Java中的核心特性,也是理解OOP(面向对象编程)的基础。 首先,**封装**是面向对象编程的核心理念之一,它涉及将数据和方法捆绑...
面向对象编程是Java的核心特性,它包括三个主要概念:封装、继承和多态。下面将分别详细介绍这三个概念以及它们在Java编程中的应用。 **封装**是面向对象编程的基础,它强调将数据和行为捆绑在一起,形成一个独立的...
多态是指同一种行为在不同对象上有不同的表现形式,它是面向对象的三大特性之一(封装、继承、多态)的重要组成部分。 1. 方法重载(Overloading):在同一个类中,可以定义多个具有相同名称但参数列表不同的方法,...
本文将对 Java 面向对象编程的三大特性:封装、继承、多态进行详细的解释和分析。 一、封装 封装是面向对象编程的基本特性之一,指的是将数据和操作数据的方法封装在一起,形成一个整体,使得外部无法直接访问内部...
在Java编程语言中,类的封装、多态和继承是面向对象编程的三大核心特性。这些概念为软件开发提供了强大的抽象能力和代码复用机制,使得程序设计更加灵活、高效。 ### 一、类的封装 封装是面向对象编程的基础,它将...
在 Java 中,面向对象编程主要体现在三大特征:封装、继承和多态。 封装是指隐藏对象的内部细节,而仅暴露必要的信息给外部世界。通过封装,可以保护对象的内部状态,并提供对外部访问的接口。在 Java 中,封装可以...
### 封装、继承、多态一语道破 #### 一、封装 ...总之,封装、继承、多态是面向对象编程中的三大核心特性,它们共同构成了面向对象程序设计的基础,帮助开发者构建出更加健壮、灵活和可维护的软件系统。