Java从零学起(七)----面向对象(中)

发布于:2023-01-22 ⋅ 阅读:(198) ⋅ 点赞:(0)

🎊前言: 

俗话说:“千里之行始于足下”,今天是Java从零学起系列的第七篇,万事开头难,要坚持哦!本篇文章主要是Java程序面向对象的知识。

目录

1.什么是继承?

💡父类(也称超类):

💡子类:

实例:

 📌父类:

📌子类1:

📌子类2:  

📢划重点:

2.方法重写

实例:

3.super关键字

实例:

4.final关键字


活动地址:CSDN21天学习挑战赛

1.什么是继承?

💡父类(也称超类):

被其它类继承的类;

💡子类:

去继承的类;

       类与类之间存在着相同的部分,比如:成员变量或者是方法;继承的有点显而易见,增强了代码的复用性,提高了开发效率,降低了程序产生的错误的可能性。子类在继承父类时需要使用extends关键字,语法格式如下:

class 父类名{

............

}

class 子类名 extends 父类名{

.............

}

实例:

 📌父类:

public class Animal { 
    private String name;  
    private int id; 
    public Animal(String myName, int myid) { 
        name = myName; 
        id = myid;
    } 
    public void eat(){ 
        System.out.println(name+"正在吃"); 
    }
    public void sleep(){
        System.out.println(name+"正在睡");
    }
    public void introduction() { 
        System.out.println("大家好!我是"         + id + "号" + name + "."); 
    } 
}

📌子类1:

public class Penguin extends Animal { 
    public Penguin(String myName, int myid) { 
        super(myName, myid); 
    } 
}

注:子类除了继承父类的成员变量和方法,还可以有自己的私有成员变量和方法 

📌子类2:  

public class Mouse extends Animal { 
    private int age;
    
    public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Mouse(String myName, int myid) { 
        super(myName, myid); 
    } 
	public void Age() {
		System.out.println("我今年"+getAge()+"了!");
	}
}

📢划重点:

  • 在Java中,类只支持 单继承,不允许多继承。也就是说,一个类只能有一个直接父类,但是一个父类可以被多个子类继承;就像是儿子只有一个爹,而一个爹可以有多个儿子一样;
  • 在Java中,子类可以被其他类继承,称为多层继承;就像是爷爷,爸爸,孙子这样一种关系;
  • 在继承中,子类不能访问父类的私有成员变量和私有方法,注意子类是继承父类私有成员变量和方法的,仅仅是不能访问,不能使用;

2.方法重写

       在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类方法进行重写。在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表和返回值类型,且在子类重写的方法不能比父类方法更加严格的访问权限。

实例:

//父类
class Animal {
	void shout() {
		// TODO Auto-generated method stub
     System.out.println("动物发出叫声");
	}
}
class Dog extends Animal{
	//重写父类中的shout方法
	void shout() {
		System.out.println("汪汪汪......");
	}
}
//主类
public class Main{
      public static void main(String[] args) {
		Dog dog=new Dog();//创建Dog类实例对象
		dog.shout();      //调用Dog类中重写的shout方法
	}
}
/*运行结果
汪汪汪......
*/

3.super关键字

super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。语法格式如下:

super.成员变量

super.成员方法(参数1,参数2...)

实例:

//父类
class Animal {
	private String name;
	private int age;
	public Animal(String name,int age) {
		this.name=name;
		this.age=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 String info() {
		return "名字:"+this.getName()+",年龄:"+this.getAge();	
	}
}
class Dog extends Animal{
	private String color;
	public Dog(String name,int age,String color) {
		super(name, age);
		this.setColor(color);		
	}
	
	public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}

	//重写父类中的info方法
	public String info() {
		return super.info()+",颜色:"+this.getColor();	
	}
}
//主类
public class Main{
      public static void main(String[] args) {
		Dog dog=new Dog("柴犬",2,"黄色");//创建Dog类实例对象
	    System.out.println(dog.info());     //调用Dog类中重写的shout方法
	}
}
/*运行结果
名字:柴犬,年龄:2,颜色:黄色
*/

4.final关键字

  • 使用final修饰的类不能被继承(相当于绝育😁);
  • 使用final修饰的方法不能被子类重写;
  • 使用final修饰的变量是常量,不可以被修改;