栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java三大特性之一-继承

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java三大特性之一-继承

继承是类与类之间的关系

继承至少需要两个类

在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的

语法格式:

class 父类A{
    ...       //成员变量、成员方法
}
class 子类B extends 父类A{
    ...       //类体
}

其中 B是一个类,A是一个类

B类继承了A类。 B叫A的子类。A是B的父类(超类,基类)

案例:

class Teacher{             //声明一个Teacher类为父类
	String name;      	   //定义父类的成员变量name、age   
	int age;
	public void eat(){           //定义父类成员方法
		System.out.println("吃大盘鸡拌面");
	}
}
class Student extends Teacher {     //声明一个Student类为子类并继承父类
}
public class Demo1 {
	public static void main(String[] args) {
	System.out.println("学生");
	Student student=new Student();     //声明一个Student类的实例对象student
	student.name="小黑";                //子类调用父类的成员变量name并赋值
	student.age=19;                    //子类调用父类的成员变量age并赋值
    System.out.println(student.name);  //打印学生的名字
    System.out.println(student.age);   //打印学生的年龄            
	student.eat();                    //子类调用父类的成员方法eat
	}                                 //打印出来吃大盘鸡拌面
}

成员变量

公开的和默认的属性,子类可以继承使用的

私有的成员变量,子类无法使用的。可以使用setter和getter方法来调用父类的成员变量

成员方法

公开的和默认的成员方法,子类可以继承使用

私有的成员方法,子类无法使用的

构造方法

先执行父类的构造,再执行子类的构造方法

如果父类中有有参构造,但是没有无参构造。子类会报错

关于构造方法:父类与子类的构造方法的形式保持一致。 ​ 父类中有无参构造。子类也有无参构造。父类中没有无参构造,子类也没有无参构造方法

class Father {
	private String name;
	private int age;//父类的私有成员变量
	public String getName() {//想要继承父类的方法必须使用setter和geter方法
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	public Father () {//父类的无参构造
		System.out.println("父类的构造方法");
	}//eat方法 使用public修饰的  子类可以使用
	public void eat () {
		System.out.println("吃大米饭");
	}
	private void work () {
		System.out.println("开拖拉机");
	}//使用private修饰的方法子类无法继承
	private void smoking () {
		System.out.println("抽烟");
	}
}
class Son extends Father {//子类继承父类
	
}
public class Demo8 {
   public static void main(String[] args) {
	Son son = new Son();
	son.eat();
	//son.Age(10);子类不能继承
	son.setName("小黑");//继承父类的成员变量
	System.out.println(son.getName());
	//son.work;
	//son.smoking;父类私有的方法子类不能继承
}
}

Java中继承都是单继承,只能有一个父类。

Java中可以多重继承

class A {
	
}
class B extends A {
	
}
class C extends B {
	
}
public class Demo9 {
   public static void main(String[] args) {
	
}
}

重写父类中的方法

重写目的:子类可以继承父类的非私有化的方法,但是有的 时候父类的需求满足不了子类的需求了,这个时候需要重写父类非私有的方法

重写的要求:

必须有继承关系

父类的方法必须是非私有化

在子类中重写父类方法,除了方法体不一样其他都一样

必须在子类中重写

使用super关键字继承父类的成员方法和成员变量

class Animal {
	public void sleep () {//声明一个方法
		System.out.println("呼呼睡");
	}
	public void eat (String name) {//声明一个有参的方法
		System.out.println("狗粮");
	}
}
class Dog extends Animal {
	@Override//重写的方法在子类中和父类的方法名字相同但方法体不同
	public void sleep() {
		System.out.println("在狗窝睡");
	}
	@Override//必须在子类中重写
	public void eat(String name) {
		// TODO Auto-generated method stub
		super.eat(name);//继承父类中的成员方法
	}
}

public class Demo9 {
   public static void main(String[] args) {
	Dog dog = new Dog();
	dog.sleep();
	dog.eat(null);//打印出来狗粮
}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031567.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号