• Java之面向对象中


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

    1. 继承性的好处

    • 减少代码的冗余,提高代码的复用性
    • 便于功能的扩展
    • 为之后的多态性的使用,提供了前提

    2. 继承性的格式

    继承性的格式:Class A extends B{}

    • A:子类、派生类、subclass
    • B:父类、超类、基类、superclass
    • 体现:一旦子类A继承父类B之后,子类A中就获取父类B中声明的所有的属性和方法。特别的,父类声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构。只因封装性的影响,使得子类不能直接调用父类的结构而已。
    • 子类继承父类以后,还可以声明自己特有的属性和方法:实现功能的扩展。

    典型代码:

    package 继承性;
    
    public class Person {
    	String name;
    	private int age;
    	
    	public Person() {
    		
    	}
    	public Person(String name, int age) {
    		this.name = name;
    		this.age = age;
    	}
    	
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	
    	public void eat() {
    		System.out.println("吃饭");
    		sleep();
    	}
    	
    	private void sleep() {
    		System.out.println("睡觉");
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    package 继承性;
    
    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; 会报错
    		this.setAge(age);
    		this.major = major;
    	}
    	
    //	public void eat() {
    //		System.out.println("吃饭");
    //	}
    //	
    //	public void sleep() {
    //		System.out.println("睡觉");
    //	}
    //	
    	public void study() {
    		System.out.println("学习");
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    package 继承性;
    public class ExtendsTest {
    	public static void main(String[] args) {
    		Person p1 = new Person();
    //		p1.age = 1;
    		p1.eat();
    		
    		Student s1 = new Student();
    		s1.eat();
    //		s1.sleep();
    		s1.setAge(10);
    		System.out.println(s1.getAge());
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3. Java中关于继承性的规定

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

    4. Object类

    1. 如果我们没有显示声明一个类的父类的话,则此类继承与java.lang.Object类
    2. 所有的Java类(除java.lang.Object类之外)都直接或间接的继承于java.lang.Object
    3. 意味着,所有的Java类具有java.lang.Object类声明的功能
  • 相关阅读:
    1300*B. Big Vova(最大公约数&贪心)
    spring复习(第二天上午)(黑马版)
    kafka学习之三_信创CPU下单节点kafka性能测试验证
    MySQL事务隔离级别详解
    基于FaceNet的人脸识别
    《golang设计模式》第三部分·行为型模式-01-责任链模式(Chain of Responsibility)
    vue+element-ui实现编辑图片预览
    项目重构演进之路
    PostgreSQL的学习心得和知识总结(九十五)|深入理解PostgreSQL数据库开源MPP扩展Citus 分布表数据插入 的实现原理
    一文让你彻底搞懂AQS(通俗易懂的AQS)
  • 原文地址:https://blog.csdn.net/weixin_52068218/article/details/125896674