JAVA学习10/14——继承

面向对象的特征二:继承性

为什么要有继承?
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中, 那么多个类无需再定义这些属性和行为,只要继承那个类即可。
一、继承性的好处
① 减少了代码的冗余,提高了代码的复用性;
② 便于功能的扩展;
③ 为之后多态性的使用,提供了前提。

二、继承性的格式
class A extends B{}
A:子类、派生类、subclass
B:父类、超类、基类、superclass

  • 2.1 体现:一旦子类 A 继承父类以后,子类 A 中就获取了父类 B 中声明的结构:属性、方法
    特别的,父类中声明为 private 的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构。只有因为封装性的影响,使得子类不能直接调用父类的结构而已。
  • 2.2 子类继承父类以后,还可以声明自己特有的属性或方法,实现功能的拓展。
    子类和父类的关系:不同于子集与集合的关系。
    extends:延展、扩展
    练习
  • 为描述和处理个人信息,定义类 Person
public class Person {
	
	String name;
	private int age;
	
	public Person(){
		
	}
	
	public Person(String name,int age){
		this.name = name;
		this.age = age;
	}
	
	public void eat(){
		System.out.println("吃饭");
		sleep();
	}
	
	private void sleep(){
		System.out.println("睡觉");
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
}
  • 为描述和处理学生信息,定义类 Student
public class Student extends Person {

//	String name;
//	int age;
	String major;
	
	public Student(){
		
	}
	
	public Student(String name,int age,String major){
		this.name = name;
//		this.age = age;
		setAge(age);
		this.major = major;
	}
	
//	public void eat(){
//		System.out.println("吃饭");
//	}
//	
//	public void sleep(){
//		System.out.println("睡觉");
//	}
	
	public void study(){
		System.out.println("学习");
	}
	
	public void show(){
		System.out.println("name:" + name + ",age = " + getAge());
	}

}

测试

public class ExtendsTest {

	public static void main(String[] args) {
		Person p1 = new Person();
//		p1.age = 1;
		p1.eat();
		System.out.println("********************");
		
		Student s1 = new Student();
		s1.eat();
//		s1.sleep();
		s1.name = "Tom";
		
		s1.setAge(10);
		System.out.println(s1.getAge());
		
	}
}

在这里插入图片描述
Java 中关于继承性的规定

  • 1.一个类可以被多个类继承
  • 2.Java 中类的单继承性:一个类只能有一个父类
  • 3.子父类是相对的概念。
  • 4.子类直接继承的父类,称为:直接父类。间接继承的父类,称为,间接父类。
  • 5.子类继承父类后,就获取了直接父类以及所有间接父类中声明的属性和方法。

Object 类

  • 1.如果我们没有显式的声明一个类的父类的话,则此类继承于 java.lang.Object 类
  • 2.所有的 java 类(除 java.long.Object 类之外)都直接或间接地继承于 java.lang.Object 类;
  • 3.意味着,所有的 java 类具有 java.lang.Object 类声明的功能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SDO(Service Data Object)是一种数据访问和操作的模型,它可以在不同的应用程序之间共享数据。SDO定义了一组API,用于访问和操作数据对象。在Java中,SDO的实现称为SDO for Java。 在SDO for Java中,DataObject是SDO的核心概念之一。DataObject是一个Java对象,它可以表示任意类型的数据。SDO for Java提供了一组API,用于创建、访问和操作DataObject。 DataObject具有以下特点: 1. 动态属性:DataObject可以动态添加和删除属性,而不需要在定义时指定属性。 2. 支持继承:DataObject可以继承自其他DataObject,继承可以实现数据的重用。 3. 支持多重值:DataObject的属性可以是多重值,可以包含多个值。 4. 支持关联:DataObject可以与其他DataObject建立关联,形成一个对象图。 SDO for Java提供了一组API,用于访问和操作DataObject。例如,可以使用以下代码创建一个DataObject: ``` DataObject dataObject = dataFactory.create("uri", "typeName"); ``` 其中,dataFactory是SDO的工厂类,"uri"和"typeName"分别表示DataObject的命名空间和类型名。 创建DataObject后,可以使用以下代码设置和获取属性值: ``` dataObject.set("propertyName", propertyValue); Object value = dataObject.get("propertyName"); ``` 其中,"propertyName"表示属性名,propertyValue表示属性值。 除了设置和获取属性值外,还可以使用以下代码访问DataObject的关联: ``` DataObject relatedObject = dataObject.getDataObject("associationName"); List<DataObject> relatedObjects = dataObject.getList("associationName"); ``` 其中,"associationName"表示关联名。getDataObject方法返回与DataObject建立关联的单个DataObject,getList方法返回与DataObject建立关联的多个DataObject。 总之,DataObject是SDO for Java的核心概念之一,它提供了一种灵活、动态、可扩展的数据访问和操作模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值