一个菜鸟对封装,继承等的的简单认知

个人理解

1:封装

封装就是把对象的信息内部的逻辑结构隐藏起来,不让外部类直接访问,不过可以通过setter和getter方法进行访问

举个简单的例子:就是用一个房子把对象的信息和内部的逻辑结构放进去,锁起来不让别人访问,而setter和getter方法就是房子的门或窗户

封装的好处:1.安全性  2.复用性。

 例题:

package com.lenovo.dmeo;
public class Demo {
 //int i=10;使用private修饰
 private int i=10;
 
 public void print(){
  System.out.println(1);
 }
 
 private void show(){
  System.out.println("封装");
 }
 
 public int getI() {
  return i;
 }
 public void setI(int i) {
  this.i = i;
 }
 
 
}


package com.lenovo.dmeo;
public class Privatetext {
 public static void main(String[] args) {
  Demo demo=new Demo();
  
  System.out.print("输出i=");
  //public修饰的成员方法可以正常调用
  demo.print();
  
  //private修饰的成员方法无法访问
    //demo.show();
   
}
}


2.继承
继承是从已有的类中派生出新类,新类能继承已有类的属性和方法,并能扩展新的能力
举个例子:马云的儿子马小云继承了他爸爸的财产(属性)和赚钱的方法(方法),而且马小云还去学了演技(扩展新的能力)
继承的特性:单一性和传递性
单一性:只能有一个父类,通俗说就是只能有一个爹
传递性:父类中的成员变量和成员方法传递到子类中
继承的好处:
1.打破了封装
2.提高了代码的复用性并且减少了代码量

继承关键字:extends
使用:public class Niao {}
           public class Dayan extends Niao{}

例题:
package com.lenvov.modal1;
/**
 * 父类:鸟
 * @author nk
 *
 */
public class Niao {
 private String name;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 
 public void eat(){
  System.out.println("我吃虫");
 }
 public void fly(){
  System.out.println("我会飞");
 }
}



package com.lenvov.modal1;
/**
 * 子类:大雁
 * @author nk
 *
 */
public class Dayan extends Niao{
 public void color(){
  System.out.println("我颜色比一般鸟深");
 }
 public void zui(){
  System.out.println("我的嘴比一般鸟大");
 }
}




package com.lenvov.modal1;
public class Text {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Niao niao=new Niao();
  Dayan dayan=new Dayan();
  
  niao.eat();
  niao.fly();
  System.out.println();
  dayan.eat();
  dayan.fly();
  dayan.color();
  dayan.zui();
 }
}


3.抽象类
抽象类:由abstract修饰的类,抽象类中抽象方法没有方法体,抽象类不能被实例化,所以抽象类必须被继承,才能被使用, 抽象类主要用于一些父类不需要具体实现,只需要定义方法名,由其 子类完成具体方法体 的情况

例题:
package tushu;
/**
 * 抽象类
 * @author nk
 *
 */
public abstract class Books {
 public abstract void addbook();
 public abstract void removebook();
 public abstract void searchbook();
}



package tushu;
/**
 * 继承抽象类Books
 * @author nk
 *
 */
public class Book extends Books{
 @Override
 public void addbook(){
  System.out.println("添加成功");
 }
 @Override
 public void removebook(){
  System.out.println("删除成功");
 }
 @Override
 public void searchbook() {
  System.out.println("搜索成功");
 }
 
}




package tushu;
public class Text {
 public static void main(String[] args) {
  
  Bok book=new Book();
  book.addbook();
  book.removebook();
  book.searchbook();
 }
}



4.接口
接口的理解: 接口是用interface修饰的一个类,类里只有抽象方法

接口的特点:
接口无法被实例化,但可以被实现

接口用关键字interface修饰

interface 接口名 {}

类实现接口用implements修饰

class 类名 implements 接口名 {}


例题:
package usb;
/**
 * 飞翔的接口
 * @author nk
 *
 */
public interface Flyable {
 public void Fly();
}




package usb;
public class Bird implements Flyable{
 @Override
 public void Fly() {
  // TODO Auto-generated method stub
  System.out.println("翅膀是我身体的一部分,我会飞");
 }
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值