Java 42. Ghi đè phương thức - Overriding trong lập trình Java



    Bản quyền thuộc về TITV.vn, 
    vui lòng không đăng tải lại nội dung từ trang này.

    Video giải thích chi tiết


     Khái niệm Overriding 


    Overrding hay ghi đè phương thức, được sử dụng trong trường hợp lớp con kế thừa từ lớp cha và muốn định nghĩa lại một phương thức đã có mặt ở lớp cha.


    Lý do: Một lớp cha thường có thể có nhiều lớp con kế thừa, tuy nhiên phương thức ở lớp cha có thể phù hợp với lớp con này nhưng không phù hợp với lớp con khác, do đó lớp con cần ghi đè lại phương thức đó cho phù hợp.


    Ví dụ:




    Quy tắc:

    • Lớp con và lớp cha có mối quan hệ kế thừa.

    • Phương thức trong lớp con phải có tên giống với lớp cha.

    • Phương thức trong lớp con phải có tham số giống với lớp cha.



     Ví dụ 

    
    
    public class Animal {
    	protected String name;
    
    	public Animal(String name) {
    		this.name = name;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public void eat() {
    		System.out.println("Tôi đang ăn .... ");
    	}
    	public void makeSound() {
    		System.out.println("................");
    	}
    	public void sleep() {
    		System.out.println("Zzzzzzzzzzzzzzzz");
    	}
    }
    
    
         
    
    
    public class Dog extends Animal{
    	public Dog() {
    		super("Dog");
    	}
    
    	@Override
    	public void eat() {
    		System.out.println("Tôi ăn xương!");
    	}
    
    	@Override
    	public void makeSound() {
    		System.out.println("Gâu gâu");
    	}
    	
    }
    
    
         
    
    
    public class Cat extends Animal{
    
    	public Cat() {
    		super("Cat");
    	}
    
    	@Override
    	public void eat() {
    		System.out.println("Tôi ăn cá!");
    	}
    
    	@Override
    	public void makeSound() {
    		System.out.println("Meo meo");
    	}
    	
    }
    
    
         
    
    
    public class Bird extends Animal{
    
    	public Bird() {
    		super("Bird");
    	}
    
    	@Override
    	public void eat() {
    		System.out.println("Tôi ăn sâu!");
    	}
    
    	@Override
    	public void makeSound() {
    		System.out.println("Líu lo");
    	}
    }
    
    
         
    
    
    public class Test {
    	public static void main(String[] args) {
    		System.out.println("Test dog: ");
    		Dog d = new Dog();
    		d.eat();
    		d.makeSound();
    		d.sleep();
    		
    		System.out.println("---- ");
    		System.out.println("Test cat: ");
    		Cat c= new Cat();
    		c.eat();
    		c.makeSound();
    		c.sleep();
    		
    		System.out.println("---- ");
    		System.out.println("Test bird: ");
    		Bird b= new Bird();
    		b.eat();
    		b.makeSound();
    		b.sleep();
    		
    	}
    }
    
    
    
         

    Bạn có thể thích những bài đăng này:

    Không có nhận xét nào:

    Đăng nhận xét