Java——继承、多态、抽象类

本文详细介绍了Java中的继承、多态和抽象类。通过讲解`extends`关键字、向上转型与向下转型、多态的概念及其实现、`instanceof`关键字的应用,以及抽象方法和抽象类的特性,帮助读者深入理解Java面向对象编程的核心概念。同时,文中还探讨了在构造器中调用重写方法的潜在问题及其原因。
摘要由CSDN通过智能技术生成

继承(is a的关系)

首先请看这两个代码:
eg:

class Student{
   
	String name;
	int age;
	
	public Student(){
   
	}
	//getXxx()/setXxx()
	public void eat(){
   
	System.out.println("吃饭");
	}
}

class Teacher{
   
	String name;
	int age;
	
	public Teacher(){
   
	}
	//getXxx()/setXxx()
	public void eat(){
   
	System.out.println("吃饭");
	}
}
  • 上面两个代码的name、age、getXxx()/setXxx()、eat()等都是相同的,如果后面继续定义的类也具备这些内容,每一次定义类都要将这些重复的内容重新定义一次,使得代码变的很冗杂;
    为了解决这一问题,Java中提出了继承这一概念。

继承:多个类中存在相同属性和行为时,将这些内容抽取到单独的一个类中,那么多个类无需再定义这些属性和行为,只需要继承那个类即可;

class 父类名 {
   
}//父类、基类、超类
class 子类名 extends 父类名{
   
}//子类、派生类
//类2继承于类1
extends 是关键字;

由此,前面的两个代码就可以写为:

class Person{
   
	String name;
	int age;
	
	public Person(){
   
	}
	
	//getXxx()/setXxx()
	
	public void eat(){
   
	System.out.println("吃饭");
	}
}
class Student extends Person{
   
	public Student(){
   
	}
}
class Teacher extends Person{
   
	public Teacher(){
   
	}
}

继承的优点:

  • 提高了代码的复用性;
  • 提高了代码的维护性;
  • 让类与类之间产生关系,是多态的前提;
extends 关键字
  • final class Animal —>类被final修饰后不能被继承
  • final可以修饰常量、属性、类
class Animal{
   
    public String name;
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值