java的三大特征之继承
继承的概述
继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似。
继承可以理解为一个类从另一个类获取方法和属性的过程。如果类B继承于类A,那么B就拥有A的方法和属性。
继承使用 extends 关键字。
例子:people类与teacher类的继承关系
class People{
String name;
int age;
int height;
void say(){
System.out.println(name,age,height);
}
}
class Teacher extends People{
String school;
String subject;
int teachyear;
// 覆盖 People 类中的 say() 方法
void say(){
System.out.println( name,school,subject,teachyear)
}
void lecturing(){
System.out.println(age);
}
子类可以覆盖父类的方法。
子类可以继承父类除private以为的所有的成员。
构造方法不能被继承。
super关键字
super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类。
super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法。
super 关键字的功能:
调用父类中声明为 private 的变量。
点取已经覆盖了的方法。
作为方法名表示父类构造方法。
调用父类的构造方法
在许多情况下,使用默认构造方法来对父类对象进行初始化。当然也可以使用 super 来显示调用父类的构造方法。
public class Demo{
public static void main(String[] args) {
Dog obj = new Dog("旺财", 3);
obj.say();
}
}
class Animal{
String name;
public Animal(String name){
this.name = name;
}
}
class Dog extends Animal{
int age;
public Dog(String name, int age){
super(name);
this.age = age;
}
public void say(){
System.out.println("我叫"+name+“我”+age+“age”);
}
}
java只允许单继承不允许多继承(一个子类继承一个父类)
错误的继承:
class A{
}
class B{
}
class C extends A,B{
}
C继承A和B的主要目的是拥有A和B中的操作,为了实现这样的目的,可以采用多层继承的形式完成。
class A{
}
class B extends A{
}
class C extends B{
}
在继承时,子类会继承父类的所有结构。
在进行继承的时候,子类会继承父类的所有结构(包括私有属性、构造方法、普通方法)
class Person {
private String name;
private int age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name=name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age=age;
}
public Person()
{
System.out.println("父类的构造方法");
}
public void fun()
{
System.out.println("好好学习。");
}
}
class Student extends Person{
private String schoolName;
public String getSchoolName()
{
return schoolName;
}
public void setSchoolName(String schoolName)
{
this.schoolName=schoolName;
}
public Student()
{
System.out.println("子类的构造方法");
}
}
public class Test2{
public static void main(String[] args)
{
Student student=new Student();
student.setName("小明");
student.setAge(18);
System.out.println("姓名:"+student.getName()+" 年龄:"+student.getAge());
student.fun();
}
}
继承的限制
子类对象在进行实例化前首先调用父类构造方法,再调用子类构造方法实例化子类对象。
class Person {
private String name;
private int age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name=name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age=age;
}
//构造方法
public Person()
{
System.out.println(“父类的构造方法”);
}
}
class Student extends Person{
private String schoolName;
public String getSchoolName()
{
return schoolName;
}
public void setSchoolName(String schoolName)
{
this.schoolName=schoolName;
}
//构造方法
public Student()
{
System.out.println(“子类的构造方法”);
}
}
public class Test2{
public static void main(String[] args)
{
Student student=new Student();
student.setName(“小明”);
student.setAge(18);
student.setSchoolName(“西开”);
System.out.println(“学校:”+student.getSchoolName() +" 姓名:"+student.getName()+" 年龄:"+student.getAge());
}
}
本文地址:https://blog.csdn.net/qq_45157942/article/details/110211558
上一篇: shell脚本读取命令行参数的实现
下一篇: 什么是反射机制【面试】
推荐阅读
-
java的三大特征之继承
-
javaScript之继承的基础学习,实例讲解
-
Java学习记录之Collections的工具类
-
Java基础之集合框架--Collections工具类中的sort()方法
-
java8新特性之接口的static和default的使用
-
2020-10-15 Java中的常用类库之Objects
-
包(package)以及面向对象三个基本特征(继承)的介绍
-
Java小程序之 人(person)喂养猫(cat)和狗(dog)统称为动物(Animal),要求:运用抽象类、继承 提示:Animal为抽象类,Cat、Dog为..........
-
关于java继承关系中抽像的个人认识
-
关于java中的继承