OOP面向对象编程----------面向对象高级

文章目录

  1. oop的三大高级特性
    Java面相对象的三大基本特性是封装继承和多态

  2. 继承

    继承是面向对象语言的高级特性,它的作用是简化类的设计,让子类可以直接拥有父的属性和方法,而无需重复定义

  3. Java中的继承
    java中只支持单继承,不支持多继承,但支持多层继承
    在继承关系中,子类继承父类,子类和父类都是相对的概念;
    我们可以使用 is 来判断是否可以使用继承;即子类 is 一个特殊的父类;
    继承的语法是
    class 子类名 extends 父类{

    	}
    
  4. 重写方法(override):
    在继承关系下,子类覆盖父类的方法; (方法名相同参数相同,返回值类型小于父类返回值)

  5. 关于继承的小结
    父类有的,子类一定有;
    父类没有的,子类可以增加;
    父类有的,子类可以修改(方法重写)

  6. 子类中也可以定义一个父类中同名的属性;这种操作被称为覆盖;

  7. .在子类中如何访问父类的成员;
    super关键字:这个关键字代表父类对象的引用;通过super.我们可访问父类的属性及方法;

	public void play(String game) {
		/**
		 * 不停调用自己会产生栈溢出的异常
		 */
//		this.play("艹");
		System.out.println(super.name + "正在玩" + game);
	}

因此产生的异常为

Exception in thread "main" java.lang.StackOverflowError
	at Student.play(Student.java:51)
	at Student.play(Student.java:51)
	at Student.play(Student.java:51
  1. 子类对象的内存结构;
    Person
    Student;

    Student s=new Student();
    

    当我们实例化一个子类对象时,会首先在内存中创建一个父类的对象,然后再创建子类的对象,我们开发时不需要直使用父类的对象;

public class Person {
	public Person() {
		System.out.println("person对象已经创建成功");
	}
}


public class Student extends Person{
	public Student(){
		System.out.println("Student对象已经创建成功");
	}
}


public class Test {

	public static void main(String[] args) {
		
		Student s = new Student();
		
	}

}

	

运行结果为:

person对象已经创建成功
Student对象已经创建成功
  1. 关于子类的构造方法;
    普通方法可以继承,构造方法不能继承。但在子类的构造方法中一定要先调用父类的构造方法;如果不明确指定调用父类的哪个构造方法,将会隐式的调用父类无参的构造 方法;
  2. 子类的构造方法可以通过super()来明确调用父类的构造方法;super()必须放在子类构造方法的第一行;并用只能调用 一次 ;

抽象类abstract

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值